match self.config.mode {
CompileFail | ParseFail => self.run_cfail_test(),
RunFail => self.run_rfail_test(),
- RunPass => self.run_rpass_test(),
RunPassValgrind => self.run_valgrind_test(),
Pretty => self.run_pretty_test(),
DebugInfoGdb => self.run_debuginfo_gdb_test(),
CodegenUnits => self.run_codegen_units_test(),
Incremental => self.run_incremental_test(),
RunMake => self.run_rmake_test(),
- Ui => self.run_ui_test(),
+ RunPass | Ui => self.run_ui_test(),
MirOpt => self.run_mir_opt_test(),
}
}
+ fn should_run_successfully(&self) -> bool {
+ match self.config.mode {
+ RunPass => true,
+ Ui => self.props.run_pass,
+ _ => unimplemented!(),
+ }
+ }
+
+ fn should_compile_successfully(&self) -> bool {
+ match self.config.mode {
+ CompileFail => false,
+ RunPass => true,
+ Ui => self.props.compile_pass,
+ mode => panic!("unimplemented for mode {:?}", mode),
+ }
+ }
+
fn check_if_test_should_compile(&self, proc_res: &ProcRes) {
- if self.props.compile_pass {
+ if self.should_compile_successfully() {
if !proc_res.status.success() {
self.fatal_proc_rec("test compilation failed although it shouldn't!", proc_res);
}
rustc.arg("-Zui-testing");
}
}
- Ui => {
+ RunPass | Ui => {
if !self
.props
.compile_flags
rustc.arg(dir_opt);
}
- RunPass | RunFail | RunPassValgrind | Pretty | DebugInfoGdb | DebugInfoLldb
+ RunFail | RunPassValgrind | Pretty | DebugInfoGdb | DebugInfoLldb
| Codegen | Rustdoc | RunMake | CodegenUnits => {
// do not use JSON output
}
let expected_errors = errors::load_errors(&self.testpaths.file, self.revision);
- if self.props.run_pass {
+ if self.should_run_successfully() {
let proc_res = self.exec_compiled_test();
if !proc_res.status.success() {