compiletest: support --pass=check and --pass=build for mir-opt tests.
This commit is contained in:
parent
1d58e6ba05
commit
15719cde5e
1 changed files with 15 additions and 8 deletions
|
|
@ -357,14 +357,15 @@ impl<'test> TestCx<'test> {
|
|||
Ui if pm == Some(PassMode::Run) || self.props.fail_mode == Some(FailMode::Run) => {
|
||||
WillExecute::Yes
|
||||
}
|
||||
Ui => WillExecute::No,
|
||||
MirOpt if pm == Some(PassMode::Run) => WillExecute::Yes,
|
||||
Ui | MirOpt => WillExecute::No,
|
||||
mode => panic!("unimplemented for mode {:?}", mode),
|
||||
}
|
||||
}
|
||||
|
||||
fn should_run_successfully(&self, pm: Option<PassMode>) -> bool {
|
||||
match self.config.mode {
|
||||
Ui => pm == Some(PassMode::Run),
|
||||
Ui | MirOpt => pm == Some(PassMode::Run),
|
||||
mode => panic!("unimplemented for mode {:?}", mode),
|
||||
}
|
||||
}
|
||||
|
|
@ -3057,18 +3058,24 @@ impl<'test> TestCx<'test> {
|
|||
}
|
||||
|
||||
fn run_mir_opt_test(&self) {
|
||||
let proc_res = self.compile_test(WillExecute::Yes, EmitMetadata::No);
|
||||
let pm = self.pass_mode();
|
||||
let should_run = self.should_run(pm);
|
||||
let emit_metadata = self.should_emit_metadata(pm);
|
||||
let proc_res = self.compile_test(should_run, emit_metadata);
|
||||
|
||||
if !proc_res.status.success() {
|
||||
self.fatal_proc_rec("compilation failed!", &proc_res);
|
||||
}
|
||||
|
||||
let proc_res = self.exec_compiled_test();
|
||||
|
||||
if !proc_res.status.success() {
|
||||
self.fatal_proc_rec("test run failed!", &proc_res);
|
||||
}
|
||||
self.check_mir_dump();
|
||||
|
||||
if let WillExecute::Yes = should_run {
|
||||
let proc_res = self.exec_compiled_test();
|
||||
|
||||
if !proc_res.status.success() {
|
||||
self.fatal_proc_rec("test run failed!", &proc_res);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn check_mir_dump(&self) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue