diff options
| author | bors <bors@rust-lang.org> | 2021-02-08 20:52:54 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2021-02-08 20:52:54 +0000 |
| commit | 0fc6756b42e0556cc2e18079f5fc6b4d58f4e81a (patch) | |
| tree | b772cfec476469c0839bdcc49ef177f0a5229ec5 /src/tools | |
| parent | 921ec4b3fca17cc777766c240038d7d50ba98e0d (diff) | |
| parent | 9d1e8fe045d8512309fa3303d188ccbf06b9542f (diff) | |
| download | rust-0fc6756b42e0556cc2e18079f5fc6b4d58f4e81a.tar.gz rust-0fc6756b42e0556cc2e18079f5fc6b4d58f4e81a.zip | |
Auto merge of #81889 - m-ou-se:rollup-k63log3, r=m-ou-se
Rollup of 9 pull requests Successful merges: - #71531 (Move treat err as bug tests to ui) - #81356 (libtest: allow multiple filters) - #81735 (faster few span methods) - #81779 (improve error message for disallowed ptr-to-int casts in const eval) - #81817 (Add option to emit compiler stderr per bitwidth.) - #81828 (parse_format: treat r" as a literal) - #81840 (fix formatting of std::iter::Map) - #81861 (Show MIR bytes separately in -Zmeta-stats output) - #81865 (Clean up weird Option mapping) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
Diffstat (limited to 'src/tools')
| -rw-r--r-- | src/tools/compiletest/src/common.rs | 4 | ||||
| -rw-r--r-- | src/tools/compiletest/src/header.rs | 11 | ||||
| -rw-r--r-- | src/tools/compiletest/src/main.rs | 6 | ||||
| -rw-r--r-- | src/tools/compiletest/src/runtest.rs | 7 |
4 files changed, 22 insertions, 6 deletions
diff --git a/src/tools/compiletest/src/common.rs b/src/tools/compiletest/src/common.rs index c8e76743231..cde4bfe288d 100644 --- a/src/tools/compiletest/src/common.rs +++ b/src/tools/compiletest/src/common.rs @@ -240,8 +240,8 @@ pub struct Config { /// Run ignored tests pub run_ignored: bool, - /// Only run tests that match this filter - pub filter: Option<String>, + /// Only run tests that match these filters + pub filters: Vec<String>, /// Exactly match the filter, rather than a substring pub filter_exact: bool, diff --git a/src/tools/compiletest/src/header.rs b/src/tools/compiletest/src/header.rs index 2eba91fd1f4..429a8c98cd5 100644 --- a/src/tools/compiletest/src/header.rs +++ b/src/tools/compiletest/src/header.rs @@ -333,6 +333,8 @@ pub struct TestProps { pub assembly_output: Option<String>, // If true, the test is expected to ICE pub should_ice: bool, + // If true, the stderr is expected to be different across bit-widths. + pub stderr_per_bitwidth: bool, } impl TestProps { @@ -372,6 +374,7 @@ impl TestProps { rustfix_only_machine_applicable: false, assembly_output: None, should_ice: false, + stderr_per_bitwidth: false, } } @@ -538,6 +541,10 @@ impl TestProps { if self.assembly_output.is_none() { self.assembly_output = config.parse_assembly_output(ln); } + + if !self.stderr_per_bitwidth { + self.stderr_per_bitwidth = config.parse_stderr_per_bitwidth(ln); + } }); } @@ -774,6 +781,10 @@ impl Config { self.parse_name_directive(line, "ignore-pass") } + fn parse_stderr_per_bitwidth(&self, line: &str) -> bool { + self.parse_name_directive(line, "stderr-per-bitwidth") + } + fn parse_assembly_output(&self, line: &str) -> Option<String> { self.parse_name_value_directive(line, "assembly-output").map(|r| r.trim().to_string()) } diff --git a/src/tools/compiletest/src/main.rs b/src/tools/compiletest/src/main.rs index 688cf930033..3fde24e8a7f 100644 --- a/src/tools/compiletest/src/main.rs +++ b/src/tools/compiletest/src/main.rs @@ -221,7 +221,7 @@ pub fn parse_config(args: Vec<String>) -> Config { suite: matches.opt_str("suite").unwrap(), debugger: None, run_ignored, - filter: matches.free.first().cloned(), + filters: matches.free.clone(), filter_exact: matches.opt_present("exact"), force_pass_mode: matches.opt_str("pass").map(|mode| { mode.parse::<PassMode>() @@ -280,7 +280,7 @@ pub fn log_config(config: &Config) { logv(c, format!("stage_id: {}", config.stage_id)); logv(c, format!("mode: {}", config.mode)); logv(c, format!("run_ignored: {}", config.run_ignored)); - logv(c, format!("filter: {}", opt_str(&config.filter))); + logv(c, format!("filters: {:?}", config.filters)); logv(c, format!("filter_exact: {}", config.filter_exact)); logv( c, @@ -465,7 +465,7 @@ fn configure_lldb(config: &Config) -> Option<Config> { pub fn test_opts(config: &Config) -> test::TestOpts { test::TestOpts { exclude_should_panic: false, - filter: config.filter.clone(), + filters: config.filters.clone(), filter_exact: config.filter_exact, run_ignored: if config.run_ignored { test::RunIgnored::Yes } else { test::RunIgnored::No }, format: if config.quiet { test::OutputFormat::Terse } else { test::OutputFormat::Pretty }, diff --git a/src/tools/compiletest/src/runtest.rs b/src/tools/compiletest/src/runtest.rs index 52aed57fc76..1ec32184d98 100644 --- a/src/tools/compiletest/src/runtest.rs +++ b/src/tools/compiletest/src/runtest.rs @@ -3124,7 +3124,12 @@ impl<'test> TestCx<'test> { errors += self.compare_output("stdout", &normalized_stdout, &expected_stdout); } if !self.props.dont_check_compiler_stderr { - errors += self.compare_output("stderr", &normalized_stderr, &expected_stderr); + let kind = if self.props.stderr_per_bitwidth { + format!("{}bit.stderr", get_pointer_width(&self.config.target)) + } else { + String::from("stderr") + }; + errors += self.compare_output(&kind, &normalized_stderr, &expected_stderr); } } TestOutput::Run => { |
