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),
}
}
}
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();
+ self.check_mir_dump();
- if !proc_res.status.success() {
- self.fatal_proc_rec("test run failed!", &proc_res);
+ 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);
+ }
}
- self.check_mir_dump();
}
fn check_mir_dump(&self) {