diff options
| author | Yuki Okushi <jtitor@2k36.org> | 2021-08-08 01:13:41 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-08-08 01:13:41 +0900 |
| commit | e862383dbb59147c43a1d23ea1a0c3e9f40484ce (patch) | |
| tree | bd308b315e73848e57faefab7d031059b125c982 /src/tools | |
| parent | 508b328c398b84126011f6fe74d018fe855bc242 (diff) | |
| parent | b7e9b1ad7f986425525461e1d53bbd14e2759de9 (diff) | |
| download | rust-e862383dbb59147c43a1d23ea1a0c3e9f40484ce.tar.gz rust-e862383dbb59147c43a1d23ea1a0c3e9f40484ce.zip | |
Rollup merge of #87744 - Smittyvb:xpy-test-force-rerun, r=Mark-Simulacrum
Add x.py option to --force-rerun compiletest tests This can be used like `./x.py test src/test/ui/abi/ --force-rerun`, and is useful when verifying that newly blessed tests don't change between test runs (such as due to being dependent on the current time or memory layout or RNG), without needing to change the test file or find the right file in `build` to remove.
Diffstat (limited to 'src/tools')
| -rw-r--r-- | src/tools/compiletest/src/common.rs | 3 | ||||
| -rw-r--r-- | src/tools/compiletest/src/main.rs | 19 |
2 files changed, 15 insertions, 7 deletions
diff --git a/src/tools/compiletest/src/common.rs b/src/tools/compiletest/src/common.rs index a5b526be86f..99b0a3454e8 100644 --- a/src/tools/compiletest/src/common.rs +++ b/src/tools/compiletest/src/common.rs @@ -362,6 +362,9 @@ pub struct Config { pub nodejs: Option<String>, /// Path to a npm executable. Used for rustdoc GUI tests pub npm: Option<String>, + + /// Whether to rerun tests even if the inputs are unchanged. + pub force_rerun: bool, } impl Config { diff --git a/src/tools/compiletest/src/main.rs b/src/tools/compiletest/src/main.rs index 46432d5e4f5..9e655557fd2 100644 --- a/src/tools/compiletest/src/main.rs +++ b/src/tools/compiletest/src/main.rs @@ -144,6 +144,7 @@ pub fn parse_config(args: Vec<String>) -> Config { "enable this to generate a Rustfix coverage file, which is saved in \ `./<build_base>/rustfix_missing_coverage.txt`", ) + .optflag("", "force-rerun", "rerun tests even if the inputs are unchanged") .optflag("h", "help", "show this message") .reqopt("", "channel", "current Rust channel", "CHANNEL"); @@ -289,6 +290,8 @@ pub fn parse_config(args: Vec<String>) -> Config { llvm_components: matches.opt_str("llvm-components").unwrap(), nodejs: matches.opt_str("nodejs"), npm: matches.opt_str("npm"), + + force_rerun: matches.opt_present("force-rerun"), } } @@ -644,13 +647,15 @@ fn make_test(config: &Config, testpaths: &TestPaths, inputs: &Stamp) -> Vec<test let test_name = crate::make_test_name(config, testpaths, revision); let mut desc = make_test_description(config, test_name, &test_path, src_file, cfg); // Ignore tests that already run and are up to date with respect to inputs. - desc.ignore |= is_up_to_date( - config, - testpaths, - &early_props, - revision.map(|s| s.as_str()), - inputs, - ); + if !config.force_rerun { + desc.ignore |= is_up_to_date( + config, + testpaths, + &early_props, + revision.map(|s| s.as_str()), + inputs, + ); + } test::TestDescAndFn { desc, testfn: make_test_closure(config, testpaths, revision) } }) .collect() |
