]> git.lizzy.rs Git - rust.git/commitdiff
compiletest: support --pass=check and --pass=build for mir-opt tests.
authorEduard-Mihai Burtescu <edy.burt@gmail.com>
Sat, 11 Apr 2020 10:38:12 +0000 (13:38 +0300)
committerEduard-Mihai Burtescu <edy.burt@gmail.com>
Sat, 11 Apr 2020 10:39:23 +0000 (13:39 +0300)
src/tools/compiletest/src/runtest.rs

index 4a024cadf499e8d9d73cb9c3758ebe7e58b94c4d..389098be096a843bb3abbd30ec464d1fb927f1bc 100644 (file)
@@ -357,14 +357,15 @@ fn should_run(&self, pm: Option<PassMode>) -> WillExecute {
             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 @@ fn run_ui_test(&self) {
     }
 
     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) {