about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMartin Pool <mbp@sourcefrog.net>2025-06-20 13:18:05 -0700
committerMartin Pool <mbp@sourcefrog.net>2025-06-20 13:22:14 -0700
commit4acf3baecda9c5080bcfdc1ebb4560fbb2a4567e (patch)
tree0138ba21b223dd3956621fdede3c6dc83a4a998d
parent9c4ff566babe632af5e30281a822d1ae9972873b (diff)
downloadrust-4acf3baecda9c5080bcfdc1ebb4560fbb2a4567e.tar.gz
rust-4acf3baecda9c5080bcfdc1ebb4560fbb2a4567e.zip
libtest: expose --fail-fast
-rw-r--r--library/test/src/cli.rs4
-rw-r--r--src/doc/rustc/src/tests/index.md10
2 files changed, 13 insertions, 1 deletions
diff --git a/library/test/src/cli.rs b/library/test/src/cli.rs
index 8840714a662..d19141b8c2c 100644
--- a/library/test/src/cli.rs
+++ b/library/test/src/cli.rs
@@ -57,6 +57,7 @@ fn optgroups() -> getopts::Options {
         .optflag("", "test", "Run tests and not benchmarks")
         .optflag("", "bench", "Run benchmarks instead of tests")
         .optflag("", "list", "List all tests and benchmarks")
+        .optflag("", "fail-fast", "Don't start new tests after the first failure")
         .optflag("h", "help", "Display this message")
         .optopt("", "logfile", "Write logs to the specified file (deprecated)", "PATH")
         .optflag(
@@ -270,6 +271,7 @@ fn parse_opts_impl(matches: getopts::Matches) -> OptRes {
     let exact = matches.opt_present("exact");
     let list = matches.opt_present("list");
     let skip = matches.opt_strs("skip");
+    let fail_fast = matches.opt_present("fail-fast");
 
     let bench_benchmarks = matches.opt_present("bench");
     let run_tests = !bench_benchmarks || matches.opt_present("test");
@@ -307,7 +309,7 @@ fn parse_opts_impl(matches: getopts::Matches) -> OptRes {
         skip,
         time_options,
         options,
-        fail_fast: false,
+        fail_fast,
     };
 
     Ok(test_opts)
diff --git a/src/doc/rustc/src/tests/index.md b/src/doc/rustc/src/tests/index.md
index 12de69a4c9e..7033184e52a 100644
--- a/src/doc/rustc/src/tests/index.md
+++ b/src/doc/rustc/src/tests/index.md
@@ -158,6 +158,16 @@ unstable-options` flag. See [tracking issue
 
 The following options affect how tests are executed.
 
+#### `--fail-fast`
+
+Stops tests after the first failure.
+
+If running tests in parallel (which is the default), then tests that have already been started on
+other threads will be allowed to run to completion before the process exits.
+
+Note that when running tests in parallel, the test execution order is non-deterministic:
+if multiple tests would fail, the first failure encountered will be reported.
+
 #### `--test-threads` _NUM_THREADS_
 
 Sets the number of threads to use for running tests in parallel. By default,