]> git.lizzy.rs Git - rust.git/commitdiff
Make `src/test/run-pass/` act like an alternative `ui` test suite.
authorFelix S. Klock II <pnkfelix@pnkfx.org>
Fri, 14 Sep 2018 09:42:32 +0000 (11:42 +0200)
committerFelix S. Klock II <pnkfelix@pnkfx.org>
Fri, 21 Sep 2018 14:21:36 +0000 (16:21 +0200)
src/tools/compiletest/src/runtest.rs

index 2d49c83edb917db3d67d26069fc8fb95c5ee09e5..3c18f9bd7c39f079c138c95026eeee1e3e68b276 100644 (file)
@@ -247,7 +247,6 @@ fn run_revision(&self) {
         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 @@ fn run_revision(&self) {
             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 @@ fn make_compile_args(&self, input_file: &Path, output_file: TargetLocation) -> C
                     rustc.arg("-Zui-testing");
                 }
             }
-            Ui => {
+            RunPass | Ui => {
                 if !self
                     .props
                     .compile_flags
@@ -1706,7 +1722,7 @@ fn make_compile_args(&self, input_file: &Path, output_file: TargetLocation) -> C
 
                 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 @@ fn run_ui_test(&self) {
 
         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() {