@@ -553,17 +553,47 @@ fn test_duplicate_revisions() {
553
553
parse_rs ( & config, "//@ revisions: rpass1 rpass1" ) ;
554
554
}
555
555
556
+ fn test_file_check_revisions ( ) {
557
+ let revisions = [ "CHECK" , "COM" , "NEXT" , "SAME" , "EMPTY" , "NOT" , "COUNT" , "DAG" , "LABEL" ] ;
558
+ }
559
+
556
560
#[ test]
557
561
fn test_forbidden_revisions ( ) {
558
- let config: Config = cfg ( ) . build ( ) ;
559
562
let revisions = [ "CHECK" , "COM" , "NEXT" , "SAME" , "EMPTY" , "NOT" , "COUNT" , "DAG" , "LABEL" ] ;
563
+ let check_enforced_modes = [ "assembly" , "codegen" , "mir-opt" ] ;
564
+ let check_skipped_modes = [
565
+ "pretty" ,
566
+ "debuginfo" ,
567
+ "rustdoc" ,
568
+ "rustdoc-json" ,
569
+ "codegen-units" ,
570
+ "incremental" ,
571
+ "ui" ,
572
+ "js-doc-test" ,
573
+ "coverage-map" ,
574
+ "coverage-run" ,
575
+ "crashes" ,
576
+ ] ;
577
+
560
578
for rev in revisions {
561
- let res = std:: panic:: catch_unwind ( || {
562
- parse_rs ( & config, format ! ( "//@ revisions: {rev}" ) . as_str ( ) ) ;
563
- } ) ;
564
- assert ! ( res. is_err( ) ) ;
565
- if let Some ( msg) = res. unwrap_err ( ) . downcast_ref :: < String > ( ) {
566
- assert ! ( msg. contains( format!( "invalid revision: `{rev}` in line ` {rev}`" ) . as_str( ) ) )
579
+ let content = format ! ( "//@ revisions: {rev}" ) ;
580
+ for mode in check_skipped_modes {
581
+ let config = cfg ( ) . mode ( mode) . build ( ) ;
582
+ parse_rs ( & config, & content) ;
583
+ }
584
+
585
+ for mode in check_enforced_modes {
586
+ let mut res = std:: panic:: catch_unwind ( || {
587
+ let config = cfg ( ) . mode ( mode) . build ( ) ;
588
+ parse_rs ( & config, & content) ;
589
+ } ) ;
590
+ assert ! ( res. is_err( ) ) ;
591
+ assert ! (
592
+ res. unwrap_err( )
593
+ . downcast_ref:: <String >( )
594
+ . unwrap( )
595
+ . contains( format!( "revision name `{rev}` is not permitted in a test suite that uses `FileCheck` annotations" ) . as_str( ) )
596
+ ) ;
567
597
}
568
598
}
569
599
}
0 commit comments