@@ -769,7 +769,7 @@ pub fn old_find_testable_code(doc: &str, tests: &mut ::test::Collector, position
769
769
block_info. should_panic , block_info. no_run ,
770
770
block_info. ignore , block_info. test_harness ,
771
771
block_info. compile_fail , block_info. error_codes ,
772
- line, filename) ;
772
+ line, filename, block_info . allow_fail ) ;
773
773
} else {
774
774
tests. add_old_test ( text, filename) ;
775
775
}
@@ -859,7 +859,7 @@ pub fn find_testable_code(doc: &str, tests: &mut ::test::Collector, position: Sp
859
859
block_info. should_panic , block_info. no_run ,
860
860
block_info. ignore , block_info. test_harness ,
861
861
block_info. compile_fail , block_info. error_codes ,
862
- line, filename) ;
862
+ line, filename, block_info . allow_fail ) ;
863
863
prev_offset = offset;
864
864
}
865
865
Event :: Start ( Tag :: Header ( level) ) => {
@@ -889,6 +889,7 @@ struct LangString {
889
889
test_harness : bool ,
890
890
compile_fail : bool ,
891
891
error_codes : Vec < String > ,
892
+ allow_fail : bool ,
892
893
}
893
894
894
895
impl LangString {
@@ -902,6 +903,7 @@ impl LangString {
902
903
test_harness : false ,
903
904
compile_fail : false ,
904
905
error_codes : Vec :: new ( ) ,
906
+ allow_fail : false ,
905
907
}
906
908
}
907
909
@@ -930,6 +932,7 @@ impl LangString {
930
932
}
931
933
"no_run" => { data. no_run = true ; seen_rust_tags = !seen_other_tags; }
932
934
"ignore" => { data. ignore = true ; seen_rust_tags = !seen_other_tags; }
935
+ "allow_fail" => { data. allow_fail = true ; seen_rust_tags = !seen_other_tags; }
933
936
"rust" => { data. rust = true ; seen_rust_tags = true ; }
934
937
"test_harness" => {
935
938
data. test_harness = true ;
@@ -1118,7 +1121,7 @@ mod tests {
1118
1121
fn test_lang_string_parse ( ) {
1119
1122
fn t ( s : & str ,
1120
1123
should_panic : bool , no_run : bool , ignore : bool , rust : bool , test_harness : bool ,
1121
- compile_fail : bool , error_codes : Vec < String > ) {
1124
+ compile_fail : bool , allow_fail : bool , error_codes : Vec < String > ) {
1122
1125
assert_eq ! ( LangString :: parse( s) , LangString {
1123
1126
should_panic: should_panic,
1124
1127
no_run: no_run,
@@ -1128,25 +1131,31 @@ mod tests {
1128
1131
compile_fail: compile_fail,
1129
1132
error_codes: error_codes,
1130
1133
original: s. to_owned( ) ,
1134
+ allow_fail: allow_fail,
1131
1135
} )
1132
1136
}
1133
1137
1138
+ fn v ( ) -> Vec < String > {
1139
+ Vec :: new ( )
1140
+ }
1141
+
1134
1142
// marker | should_panic| no_run| ignore| rust | test_harness| compile_fail
1135
- // | error_codes
1136
- t ( "" , false , false , false , true , false , false , Vec :: new ( ) ) ;
1137
- t ( "rust" , false , false , false , true , false , false , Vec :: new ( ) ) ;
1138
- t ( "sh" , false , false , false , false , false , false , Vec :: new ( ) ) ;
1139
- t ( "ignore" , false , false , true , true , false , false , Vec :: new ( ) ) ;
1140
- t ( "should_panic" , true , false , false , true , false , false , Vec :: new ( ) ) ;
1141
- t ( "no_run" , false , true , false , true , false , false , Vec :: new ( ) ) ;
1142
- t ( "test_harness" , false , false , false , true , true , false , Vec :: new ( ) ) ;
1143
- t ( "compile_fail" , false , true , false , true , false , true , Vec :: new ( ) ) ;
1144
- t ( "{.no_run .example}" , false , true , false , true , false , false , Vec :: new ( ) ) ;
1145
- t ( "{.sh .should_panic}" , true , false , false , false , false , false , Vec :: new ( ) ) ;
1146
- t ( "{.example .rust}" , false , false , false , true , false , false , Vec :: new ( ) ) ;
1147
- t ( "{.test_harness .rust}" , false , false , false , true , true , false , Vec :: new ( ) ) ;
1148
- t ( "text, no_run" , false , true , false , false , false , false , Vec :: new ( ) ) ;
1149
- t ( "text,no_run" , false , true , false , false , false , false , Vec :: new ( ) ) ;
1143
+ // | allow_fail | error_codes
1144
+ t ( "" , false , false , false , true , false , false , false , v ( ) ) ;
1145
+ t ( "rust" , false , false , false , true , false , false , false , v ( ) ) ;
1146
+ t ( "sh" , false , false , false , false , false , false , false , v ( ) ) ;
1147
+ t ( "ignore" , false , false , true , true , false , false , false , v ( ) ) ;
1148
+ t ( "should_panic" , true , false , false , true , false , false , false , v ( ) ) ;
1149
+ t ( "no_run" , false , true , false , true , false , false , false , v ( ) ) ;
1150
+ t ( "test_harness" , false , false , false , true , true , false , false , v ( ) ) ;
1151
+ t ( "compile_fail" , false , true , false , true , false , true , false , v ( ) ) ;
1152
+ t ( "allow_fail" , false , false , false , true , false , false , true , v ( ) ) ;
1153
+ t ( "{.no_run .example}" , false , true , false , true , false , false , false , v ( ) ) ;
1154
+ t ( "{.sh .should_panic}" , true , false , false , false , false , false , false , v ( ) ) ;
1155
+ t ( "{.example .rust}" , false , false , false , true , false , false , false , v ( ) ) ;
1156
+ t ( "{.test_harness .rust}" , false , false , false , true , true , false , false , v ( ) ) ;
1157
+ t ( "text, no_run" , false , true , false , false , false , false , false , v ( ) ) ;
1158
+ t ( "text,no_run" , false , true , false , false , false , false , false , v ( ) ) ;
1150
1159
}
1151
1160
1152
1161
#[ test]
0 commit comments