diff options
| author | 许杰友 Jieyou Xu (Joe) <39484203+jieyouxu@users.noreply.github.com> | 2024-10-13 00:35:25 +0800 |
|---|---|---|
| committer | 许杰友 Jieyou Xu (Joe) <39484203+jieyouxu@users.noreply.github.com> | 2024-10-13 08:29:53 +0800 |
| commit | 9f0f0352f7b6fd9c4062cc4f161ae35d33fb37c3 (patch) | |
| tree | 16d57e570af98865cf9c8950253bb4c1a9662056 /src | |
| parent | 8f8bee4f60d9d3769f75c70d558c27a95761c554 (diff) | |
| download | rust-9f0f0352f7b6fd9c4062cc4f161ae35d33fb37c3.tar.gz rust-9f0f0352f7b6fd9c4062cc4f161ae35d33fb37c3.zip | |
Error on trying to use revisions in `run-make` tests
Currently `run-make` tests do not support revisions.
Diffstat (limited to 'src')
| -rw-r--r-- | src/tools/compiletest/src/header.rs | 17 | ||||
| -rw-r--r-- | src/tools/compiletest/src/header/tests.rs | 2 |
2 files changed, 14 insertions, 5 deletions
diff --git a/src/tools/compiletest/src/header.rs b/src/tools/compiletest/src/header.rs index 63d05886166..b0aa50e8940 100644 --- a/src/tools/compiletest/src/header.rs +++ b/src/tools/compiletest/src/header.rs @@ -59,7 +59,7 @@ impl EarlyProps { rdr, &mut |HeaderLine { directive: ln, .. }| { parse_and_update_aux(config, ln, &mut props.aux); - config.parse_and_update_revisions(ln, &mut props.revisions); + config.parse_and_update_revisions(testfile, ln, &mut props.revisions); }, ); @@ -391,7 +391,7 @@ impl TestProps { has_edition = true; } - config.parse_and_update_revisions(ln, &mut self.revisions); + config.parse_and_update_revisions(testfile, ln, &mut self.revisions); if let Some(flags) = config.parse_name_value_directive(ln, RUN_FLAGS) { self.run_flags.extend(split_flags(&flags)); @@ -907,12 +907,21 @@ fn iter_header( } impl Config { - fn parse_and_update_revisions(&self, line: &str, existing: &mut Vec<String>) { + fn parse_and_update_revisions(&self, testfile: &Path, line: &str, existing: &mut Vec<String>) { if let Some(raw) = self.parse_name_value_directive(line, "revisions") { + if self.mode == Mode::RunMake { + panic!("`run-make` tests do not support revisions: {}", testfile.display()); + } + let mut duplicates: HashSet<_> = existing.iter().cloned().collect(); for revision in raw.split_whitespace().map(|r| r.to_string()) { if !duplicates.insert(revision.clone()) { - panic!("Duplicate revision: `{}` in line `{}`", revision, raw); + panic!( + "duplicate revision: `{}` in line `{}`: {}", + revision, + raw, + testfile.display() + ); } existing.push(revision); } diff --git a/src/tools/compiletest/src/header/tests.rs b/src/tools/compiletest/src/header/tests.rs index 22dfa349e2b..c3c9496c4d2 100644 --- a/src/tools/compiletest/src/header/tests.rs +++ b/src/tools/compiletest/src/header/tests.rs @@ -423,7 +423,7 @@ fn test_extract_version_range() { } #[test] -#[should_panic(expected = "Duplicate revision: `rpass1` in line ` rpass1 rpass1`")] +#[should_panic(expected = "duplicate revision: `rpass1` in line ` rpass1 rpass1`")] fn test_duplicate_revisions() { let config: Config = cfg().build(); parse_rs(&config, "//@ revisions: rpass1 rpass1"); |
