@@ -554,16 +554,54 @@ fn test_duplicate_revisions() {
554
554
}
555
555
556
556
#[ test]
557
- fn test_forbidden_revisions ( ) {
558
- let config: Config = cfg ( ) . build ( ) ;
557
+ #[ should_panic(
558
+ expected = "revision name `CHECK` is not permitted in a test suite that uses `FileCheck` annotations"
559
+ ) ]
560
+ fn test_assembly_mode_forbidden_revisions ( ) {
561
+ let config = cfg ( ) . mode ( "assembly" ) . build ( ) ;
562
+ parse_rs ( & config, "//@ revisions: CHECK" ) ;
563
+ }
564
+
565
+ #[ test]
566
+ #[ should_panic(
567
+ expected = "revision name `CHECK` is not permitted in a test suite that uses `FileCheck` annotations"
568
+ ) ]
569
+ fn test_codegen_mode_forbidden_revisions ( ) {
570
+ let config = cfg ( ) . mode ( "codegen" ) . build ( ) ;
571
+ parse_rs ( & config, "//@ revisions: CHECK" ) ;
572
+ }
573
+
574
+ #[ test]
575
+ #[ should_panic(
576
+ expected = "revision name `CHECK` is not permitted in a test suite that uses `FileCheck` annotations"
577
+ ) ]
578
+ fn test_miropt_mode_forbidden_revisions ( ) {
579
+ let config = cfg ( ) . mode ( "mir-opt" ) . build ( ) ;
580
+ parse_rs ( & config, "//@ revisions: CHECK" ) ;
581
+ }
582
+
583
+ #[ test]
584
+ fn test_forbidden_revisions_allowed_in_non_filecheck_dir ( ) {
559
585
let revisions = [ "CHECK" , "COM" , "NEXT" , "SAME" , "EMPTY" , "NOT" , "COUNT" , "DAG" , "LABEL" ] ;
586
+ let modes = [
587
+ "pretty" ,
588
+ "debuginfo" ,
589
+ "rustdoc" ,
590
+ "rustdoc-json" ,
591
+ "codegen-units" ,
592
+ "incremental" ,
593
+ "ui" ,
594
+ "js-doc-test" ,
595
+ "coverage-map" ,
596
+ "coverage-run" ,
597
+ "crashes" ,
598
+ ] ;
599
+
560
600
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( ) ) )
601
+ let content = format ! ( "//@ revisions: {rev}" ) ;
602
+ for mode in modes {
603
+ let config = cfg ( ) . mode ( mode) . build ( ) ;
604
+ parse_rs ( & config, & content) ;
567
605
}
568
606
}
569
607
}
0 commit comments