@@ -17,10 +17,10 @@ use tracing::*;
17
17
18
18
use crate :: common:: {
19
19
Assembly , Codegen , CodegenUnits , CompareMode , Config , CoverageMap , CoverageRun , Crashes ,
20
- DebugInfo , Debugger , FailMode , Incremental , MirOpt , PassMode , Pretty , RunMake , Rustdoc ,
21
- RustdocJs , RustdocJson , TestPaths , UI_EXTENSIONS , UI_FIXED , UI_RUN_STDERR , UI_RUN_STDOUT ,
22
- UI_STDERR , UI_STDOUT , UI_SVG , UI_WINDOWS_SVG , Ui , expected_output_path, incremental_dir ,
23
- output_base_dir, output_base_name, output_testname_unique,
20
+ DebugInfo , Debugger , FailMode , Incremental , MirOpt , PassMode , Pretty , RunFailMode , RunMake ,
21
+ Rustdoc , RustdocJs , RustdocJson , TestPaths , UI_EXTENSIONS , UI_FIXED , UI_RUN_STDERR ,
22
+ UI_RUN_STDOUT , UI_STDERR , UI_STDOUT , UI_SVG , UI_WINDOWS_SVG , Ui , expected_output_path,
23
+ incremental_dir , output_base_dir, output_base_name, output_testname_unique,
24
24
} ;
25
25
use crate :: compute_diff:: { DiffLine , make_diff, write_diff, write_filtered_diff} ;
26
26
use crate :: errors:: { Error , ErrorKind , load_errors} ;
@@ -277,7 +277,11 @@ impl<'test> TestCx<'test> {
277
277
278
278
fn should_run ( & self , pm : Option < PassMode > ) -> WillExecute {
279
279
let test_should_run = match self . config . mode {
280
- Ui if pm == Some ( PassMode :: Run ) || self . props . fail_mode == Some ( FailMode :: Run ) => true ,
280
+ Ui if pm == Some ( PassMode :: Run )
281
+ || matches ! ( self . props. fail_mode, Some ( FailMode :: Run ( _) ) ) =>
282
+ {
283
+ true
284
+ }
281
285
MirOpt if pm == Some ( PassMode :: Run ) => true ,
282
286
Ui | MirOpt => false ,
283
287
mode => panic ! ( "unimplemented for mode {:?}" , mode) ,
@@ -296,6 +300,13 @@ impl<'test> TestCx<'test> {
296
300
}
297
301
}
298
302
303
+ fn must_have_exit_code ( & self ) -> bool {
304
+ match self . config . mode {
305
+ Ui => self . props . fail_mode == Some ( FailMode :: Run ( RunFailMode :: FailureExitCode ) ) ,
306
+ mode => panic ! ( "unimplemented for mode {:?}" , mode) ,
307
+ }
308
+ }
309
+
299
310
fn should_compile_successfully ( & self , pm : Option < PassMode > ) -> bool {
300
311
match self . config . mode {
301
312
RustdocJs => true ,
0 commit comments