on master help sign in
Run PATH-dependent tests serially

Since PATH is a shared resource.

commitdf33ed05dd7ebd153f532bd38be2043f7b14d3be authorMartin Nordholts <enselic@gmail.com> dateMon 4 Jan 2021, 15:45 (6 years ago) parentc9efdd6
3 files changed+96−5
Cargo.lock+89−5 Cargo.toml+1 tests/integration_tests.rs+6
Cargo.lock+89−5
@@ -112,6 +112,7 @@ dependencies = [
112112 "semver",
113113 "serde",
114114 "serde_yaml",
115+ "serial_test",
115116 "shell-words",
116117 "syntect",
117118 "tempdir",
@@ -218,6 +219,12 @@ version = "0.1.10"
218219source = "registry+https://github.com/rust-lang/crates.io-index"
219220checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
220221
222+[[package]]
223+name = "cfg-if"
224+version = "1.0.0"
225+source = "registry+https://github.com/rust-lang/crates.io-index"
226+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
227+
221228[[package]]
222229name = "chrono"
223230version = "0.4.19"
@@ -281,7 +288,7 @@ version = "1.2.0"
281288source = "registry+https://github.com/rust-lang/crates.io-index"
282289checksum = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1"
283290dependencies = [
284− "cfg-if",
291+ "cfg-if 0.1.10",
285292]
286293
287294[[package]]
@@ -291,7 +298,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
291298checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
292299dependencies = [
293300 "autocfg",
294− "cfg-if",
301+ "cfg-if 0.1.10",
295302 "lazy_static",
296303]
297304
@@ -443,7 +450,7 @@ version = "1.0.18"
443450source = "registry+https://github.com/rust-lang/crates.io-index"
444451checksum = "da80be589a72651dcda34d8b35bcdc9b7254ad06325611074d9cc0fbb19f60ee"
445452dependencies = [
446− "cfg-if",
453+ "cfg-if 0.1.10",
447454 "crc32fast",
448455 "libc",
449456 "miniz_oxide",
@@ -485,7 +492,7 @@ version = "0.1.15"
485492source = "registry+https://github.com/rust-lang/crates.io-index"
486493checksum = "fc587bc0ec293155d5bfa6b9891ec18a1e330c234f896ea47fbada4cadbe47e6"
487494dependencies = [
488− "cfg-if",
495+ "cfg-if 0.1.10",
489496 "libc",
490497 "wasi",
491498]
@@ -558,6 +565,15 @@ dependencies = [
558565 "hashbrown",
559566]
560567
568+[[package]]
569+name = "instant"
570+version = "0.1.9"
571+source = "registry+https://github.com/rust-lang/crates.io-index"
572+checksum = "61124eeebbd69b8190558df225adf7e4caafce0d743919e5d6b19652314ec5ec"
573+dependencies = [
574+ "cfg-if 1.0.0",
575+]
576+
561577[[package]]
562578name = "itoa"
563579version = "0.4.6"
@@ -630,13 +646,22 @@ version = "0.5.3"
630646source = "registry+https://github.com/rust-lang/crates.io-index"
631647checksum = "8dd5a6d5999d9907cda8ed67bbd137d3af8085216c2ac62de5be860bd41f304a"
632648
649+[[package]]
650+name = "lock_api"
651+version = "0.4.2"
652+source = "registry+https://github.com/rust-lang/crates.io-index"
653+checksum = "dd96ffd135b2fd7b973ac026d28085defbe8983df057ced3eb4f2130b0831312"
654+dependencies = [
655+ "scopeguard",
656+]
657+
633658[[package]]
634659name = "log"
635660version = "0.4.11"
636661source = "registry+https://github.com/rust-lang/crates.io-index"
637662checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b"
638663dependencies = [
639− "cfg-if",
664+ "cfg-if 0.1.10",
640665]
641666
642667[[package]]
@@ -720,6 +745,31 @@ version = "0.2.3"
720745source = "registry+https://github.com/rust-lang/crates.io-index"
721746checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c"
722747
748+[[package]]
749+name = "parking_lot"
750+version = "0.11.1"
751+source = "registry+https://github.com/rust-lang/crates.io-index"
752+checksum = "6d7744ac029df22dca6284efe4e898991d28e3085c706c972bcd7da4a27a15eb"
753+dependencies = [
754+ "instant",
755+ "lock_api",
756+ "parking_lot_core",
757+]
758+
759+[[package]]
760+name = "parking_lot_core"
761+version = "0.8.2"
762+source = "registry+https://github.com/rust-lang/crates.io-index"
763+checksum = "9ccb628cad4f84851442432c60ad8e1f607e29752d0bf072cbd0baf28aa34272"
764+dependencies = [
765+ "cfg-if 1.0.0",
766+ "instant",
767+ "libc",
768+ "redox_syscall",
769+ "smallvec",
770+ "winapi",
771+]
772+
723773[[package]]
724774name = "path_abs"
725775version = "0.5.0"
@@ -959,6 +1009,12 @@ dependencies = [
9591009 "winapi-util",
9601010]
9611011
1012+[[package]]
1013+name = "scopeguard"
1014+version = "1.1.0"
1015+source = "registry+https://github.com/rust-lang/crates.io-index"
1016+checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
1017+
9621018[[package]]
9631019name = "semver"
9641020version = "0.11.0"
@@ -1021,6 +1077,28 @@ dependencies = [
10211077 "yaml-rust",
10221078]
10231079
1080+[[package]]
1081+name = "serial_test"
1082+version = "0.5.1"
1083+source = "registry+https://github.com/rust-lang/crates.io-index"
1084+checksum = "e0bccbcf40c8938196944a3da0e133e031a33f4d6b72db3bda3cc556e361905d"
1085+dependencies = [
1086+ "lazy_static",
1087+ "parking_lot",
1088+ "serial_test_derive",
1089+]
1090+
1091+[[package]]
1092+name = "serial_test_derive"
1093+version = "0.5.1"
1094+source = "registry+https://github.com/rust-lang/crates.io-index"
1095+checksum = "b2acd6defeddb41eb60bb468f8825d0cfd0c2a76bc03bfd235b6a1dc4f6a1ad5"
1096+dependencies = [
1097+ "proc-macro2",
1098+ "quote",
1099+ "syn",
1100+]
1101+
10241102[[package]]
10251103name = "sha-1"
10261104version = "0.8.2"
@@ -1039,6 +1117,12 @@ version = "1.0.0"
10391117source = "registry+https://github.com/rust-lang/crates.io-index"
10401118checksum = "b6fa3938c99da4914afedd13bf3d79bcb6c277d1b2c398d23257a304d9e1b074"
10411119
1120+[[package]]
1121+name = "smallvec"
1122+version = "1.6.0"
1123+source = "registry+https://github.com/rust-lang/crates.io-index"
1124+checksum = "1a55ca5f3b68e41c979bf8c46a6f1da892ca4db8f94023ce0bd32407573b1ac0"
1125+
10421126[[package]]
10431127name = "std_prelude"
10441128version = "0.2.12"
Cargo.toml+1
@@ -74,6 +74,7 @@ default-features = false
7474[dev-dependencies]
7575tempdir = "0.3"
7676assert_cmd = "1.0.2"
77+serial_test = "0.5.1"
7778predicates = "1.0.5"
7879
7980[build-dependencies]
tests/integration_tests.rs+6
@@ -1,5 +1,6 @@
11use assert_cmd::Command;
22use predicates::{prelude::predicate, str::PredicateStrExt};
3+use serial_test::serial;
34use std::env;
45use std::path::{Path, PathBuf};
56use std::str::from_utf8;
@@ -474,6 +475,7 @@ fn pager_value_bat() {
474475/// We shall use less instead of most if PAGER is used since PAGER
475476/// is a generic env var
476477#[test]
478+#[serial] // Because of PATH
477479fn pager_most_from_pager_env_var() {
478480 with_mocked_versions_of_more_and_most_in_path(|| {
479481 // If the output is not "I am most\n" then we know 'most' is not used
@@ -490,6 +492,7 @@ fn pager_most_from_pager_env_var() {
490492/// If the bat-specific BAT_PAGER is used, obey the wish of the user
491493/// and allow 'most'
492494#[test]
495+#[serial] // Because of PATH
493496fn pager_most_from_bat_pager_env_var() {
494497 with_mocked_versions_of_more_and_most_in_path(|| {
495498 bat()
@@ -504,6 +507,7 @@ fn pager_most_from_bat_pager_env_var() {
504507
505508/// Same reasoning with --pager as with BAT_PAGER
506509#[test]
510+#[serial] // Because of PATH
507511fn pager_most_from_pager_arg() {
508512 with_mocked_versions_of_more_and_most_in_path(|| {
509513 bat()
@@ -518,6 +522,7 @@ fn pager_most_from_pager_arg() {
518522
519523/// Make sure the logic for 'most' applies even if an argument is passed
520524#[test]
525+#[serial] // Because of PATH
521526fn pager_most_with_arg() {
522527 with_mocked_versions_of_more_and_most_in_path(|| {
523528 bat()
@@ -532,6 +537,7 @@ fn pager_most_with_arg() {
532537
533538/// Sanity check that 'more' is treated like 'most'
534539#[test]
540+#[serial] // Because of PATH
535541fn pager_more() {
536542 with_mocked_versions_of_more_and_most_in_path(|| {
537543 bat()