Add `exact-llvm-major-version
` directive
This commit is contained in:
parent
44f233f251
commit
98a71766b8
4 changed files with 24 additions and 2 deletions
|
@ -25,6 +25,7 @@ const KNOWN_DIRECTIVE_NAMES: &[&str] = &[
|
||||||
"dont-check-failure-status",
|
"dont-check-failure-status",
|
||||||
"edition",
|
"edition",
|
||||||
"error-pattern",
|
"error-pattern",
|
||||||
|
"exact-llvm-major-version",
|
||||||
"exec-env",
|
"exec-env",
|
||||||
"failure-status",
|
"failure-status",
|
||||||
"filecheck-flags",
|
"filecheck-flags",
|
||||||
|
|
|
@ -1585,6 +1585,19 @@ fn ignore_llvm(config: &Config, line: &str) -> IgnoreDecision {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else if let Some(version_string) =
|
||||||
|
config.parse_name_value_directive(line, "exact-llvm-major-version")
|
||||||
|
{
|
||||||
|
// Syntax is "only-llvm-major-version: <version>"
|
||||||
|
let version = extract_llvm_version(&version_string);
|
||||||
|
if actual_version.major > version.major || actual_version.major < version.major {
|
||||||
|
return IgnoreDecision::Ignore {
|
||||||
|
reason: format!(
|
||||||
|
"ignored when the LLVM major version is {}, but it should be {}",
|
||||||
|
actual_version.major, version.major
|
||||||
|
),
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
IgnoreDecision::Continue
|
IgnoreDecision::Continue
|
||||||
|
|
|
@ -284,6 +284,15 @@ fn llvm_version() {
|
||||||
|
|
||||||
let config: Config = cfg().llvm_version("10.0.0").build();
|
let config: Config = cfg().llvm_version("10.0.0").build();
|
||||||
assert!(!check_ignore(&config, "//@ min-llvm-version: 9.0"));
|
assert!(!check_ignore(&config, "//@ min-llvm-version: 9.0"));
|
||||||
|
|
||||||
|
let config: Config = cfg().llvm_version("10.0.0").build();
|
||||||
|
assert!(check_ignore(&config, "//@ exact-llvm-major-version: 9.0"));
|
||||||
|
|
||||||
|
let config: Config = cfg().llvm_version("9.0.0").build();
|
||||||
|
assert!(check_ignore(&config, "//@ exact-llvm-major-version: 10.0"));
|
||||||
|
|
||||||
|
let config: Config = cfg().llvm_version("10.0.0").build();
|
||||||
|
assert!(!check_ignore(&config, "//@ exact-llvm-major-version: 10.0"));
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
|
|
@ -2,8 +2,7 @@
|
||||||
//@ only-x86_64
|
//@ only-x86_64
|
||||||
// FIXME: Remove the `min-llvm-version`.
|
// FIXME: Remove the `min-llvm-version`.
|
||||||
//@ revisions: NINETEEN TWENTY
|
//@ revisions: NINETEEN TWENTY
|
||||||
//@[NINETEEN] min-llvm-version: 19
|
//@[NINETEEN] exact-llvm-major-version: 19
|
||||||
//@[NINETEEN] ignore-llvm-version: 20-99
|
|
||||||
//@[TWENTY] min-llvm-version: 20
|
//@[TWENTY] min-llvm-version: 20
|
||||||
//@ min-llvm-version: 19
|
//@ min-llvm-version: 19
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue