Error on trying to use revisions in run-make
tests
Currently `run-make` tests do not support revisions.
This commit is contained in:
parent
8f8bee4f60
commit
9f0f0352f7
@ -59,7 +59,7 @@ pub fn from_reader<R: Read>(config: &Config, testfile: &Path, rdr: R) -> Self {
|
||||
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 @@ fn split_flags(flags: &str) -> Vec<String> {
|
||||
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);
|
||||
}
|
||||
|
@ -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");
|
||||
|
Loading…
Reference in New Issue
Block a user