@@ -1028,12 +1028,31 @@ impl<'test> TestCx<'test> {
10281028 }
10291029
10301030 fn set_revision_flags ( & self , cmd : & mut Command ) {
1031+ // Normalize revisions to be lowercase and replace `-`s with `_`s.
1032+ // Otherwise the `--cfg` flag is not valid.
1033+ let normalize_revision = |revision : & str | revision. to_lowercase ( ) . replace ( "-" , "_" ) ;
1034+
10311035 if let Some ( revision) = self . revision {
1032- // Normalize revisions to be lowercase and replace `-`s with `_`s.
1033- // Otherwise the `--cfg` flag is not valid.
1034- let normalized_revision = revision. to_lowercase ( ) . replace ( "-" , "_" ) ;
1036+ let normalized_revision = normalize_revision ( revision) ;
10351037 cmd. args ( & [ "--cfg" , & normalized_revision] ) ;
10361038 }
1039+
1040+ if !self . props . no_auto_check_cfg {
1041+ let mut check_cfg = String :: with_capacity ( 25 ) ;
1042+
1043+ // Generate `cfg(FALSE, REV1, ..., REVN)` (for all possible revisions)
1044+ //
1045+ // For compatibility reason we consider the `FALSE` cfg to be expected
1046+ // since it is extensively used in the testsuite.
1047+ check_cfg. push_str ( "cfg(FALSE" ) ;
1048+ for revision in & self . props . revisions {
1049+ check_cfg. push_str ( "," ) ;
1050+ check_cfg. push_str ( & normalize_revision ( & revision) ) ;
1051+ }
1052+ check_cfg. push_str ( ")" ) ;
1053+
1054+ cmd. args ( & [ "--check-cfg" , & check_cfg] ) ;
1055+ }
10371056 }
10381057
10391058 fn typecheck_source ( & self , src : String ) -> ProcRes {
0 commit comments