1
Fork 0

Make src/test/run-pass/ act like an alternative ui test suite.

This commit is contained in:
Felix S. Klock II 2018-09-14 11:42:32 +02:00
parent 1002e404e1
commit ddb1a2afb7

View file

@ -247,7 +247,6 @@ impl<'test> TestCx<'test> {
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(),
@ -257,13 +256,30 @@ impl<'test> TestCx<'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);
}
@ -1677,7 +1693,7 @@ impl<'test> TestCx<'test> {
rustc.arg("-Zui-testing");
}
}
Ui => {
RunPass | Ui => {
if !self
.props
.compile_flags
@ -1706,7 +1722,7 @@ impl<'test> TestCx<'test> {
rustc.arg(dir_opt);
}
RunPass | RunFail | RunPassValgrind | Pretty | DebugInfoGdb | DebugInfoLldb
RunFail | RunPassValgrind | Pretty | DebugInfoGdb | DebugInfoLldb
| Codegen | Rustdoc | RunMake | CodegenUnits => {
// do not use JSON output
}
@ -2691,7 +2707,7 @@ impl<'test> TestCx<'test> {
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() {