Add edition configuration to compiletest
This commit is contained in:
parent
1af55d19c7
commit
65b3c85317
@ -349,6 +349,9 @@ pub struct Config {
|
||||
/// The current Rust channel
|
||||
pub channel: String,
|
||||
|
||||
/// The default Rust edition
|
||||
pub edition: Option<String>,
|
||||
|
||||
// Configuration for various run-make tests frobbing things like C compilers
|
||||
// or querying about various LLVM component information.
|
||||
pub cc: String,
|
||||
|
@ -222,6 +222,7 @@ impl TestProps {
|
||||
/// `//[foo]`), then the property is ignored unless `cfg` is
|
||||
/// `Some("foo")`.
|
||||
fn load_from(&mut self, testfile: &Path, cfg: Option<&str>, config: &Config) {
|
||||
let mut has_edition = false;
|
||||
if !testfile.is_dir() {
|
||||
let file = File::open(testfile).unwrap();
|
||||
|
||||
@ -240,6 +241,7 @@ impl TestProps {
|
||||
|
||||
if let Some(edition) = config.parse_edition(ln) {
|
||||
self.compile_flags.push(format!("--edition={}", edition));
|
||||
has_edition = true;
|
||||
if edition == "2021" {
|
||||
self.compile_flags.push("-Zunstable-options".to_string());
|
||||
}
|
||||
@ -391,6 +393,10 @@ impl TestProps {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if let (Some(edition), false) = (&config.edition, has_edition) {
|
||||
self.compile_flags.push(format!("--edition={}", edition));
|
||||
}
|
||||
}
|
||||
|
||||
fn update_fail_mode(&mut self, ln: &str, config: &Config) {
|
||||
|
@ -147,7 +147,8 @@ pub fn parse_config(args: Vec<String>) -> Config {
|
||||
)
|
||||
.optflag("", "force-rerun", "rerun tests even if the inputs are unchanged")
|
||||
.optflag("h", "help", "show this message")
|
||||
.reqopt("", "channel", "current Rust channel", "CHANNEL");
|
||||
.reqopt("", "channel", "current Rust channel", "CHANNEL")
|
||||
.optopt("", "edition", "default Rust edition", "EDITION");
|
||||
|
||||
let (argv0, args_) = args.split_first().unwrap();
|
||||
if args.len() == 1 || args[1] == "-h" || args[1] == "--help" {
|
||||
@ -282,6 +283,7 @@ pub fn parse_config(args: Vec<String>) -> Config {
|
||||
rustfix_coverage: matches.opt_present("rustfix-coverage"),
|
||||
has_tidy,
|
||||
channel: matches.opt_str("channel").unwrap(),
|
||||
edition: matches.opt_str("edition"),
|
||||
|
||||
cc: matches.opt_str("cc").unwrap(),
|
||||
cxx: matches.opt_str("cxx").unwrap(),
|
||||
|
Loading…
x
Reference in New Issue
Block a user