@@ -1028,12 +1028,31 @@ impl<'test> TestCx<'test> {
1028
1028
}
1029
1029
1030
1030
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
+
1031
1035
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) ;
1035
1037
cmd. args ( & [ "--cfg" , & normalized_revision] ) ;
1036
1038
}
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
+ }
1037
1056
}
1038
1057
1039
1058
fn typecheck_source ( & self , src : String ) -> ProcRes {
0 commit comments