@@ -3,7 +3,7 @@ use std::path::Path;
33use std:: str:: FromStr ;
44
55use crate :: common:: { Config , Debugger , Mode } ;
6- use crate :: header:: { parse_normalization_string , EarlyProps , HeadersCache } ;
6+ use crate :: header:: { parse_normalize_rule , EarlyProps , HeadersCache } ;
77
88use super :: iter_header;
99
@@ -32,35 +32,41 @@ fn make_test_description<R: Read>(
3232}
3333
3434#[ test]
35- fn test_parse_normalization_string ( ) {
36- let mut s = "normalize-stderr-32bit: \" something (32 bits)\" -> \" something ($WORD bits)\" ." ;
37- let first = parse_normalization_string ( & mut s) ;
38- assert_eq ! ( first, Some ( "something (32 bits)" . to_owned( ) ) ) ;
39- assert_eq ! ( s, " -> \" something ($WORD bits)\" ." ) ;
40-
41- // Nothing to normalize (No quotes)
42- let mut s = "normalize-stderr-32bit: something (32 bits) -> something ($WORD bits)." ;
43- let first = parse_normalization_string ( & mut s) ;
44- assert_eq ! ( first, None ) ;
45- assert_eq ! ( s, r#"normalize-stderr-32bit: something (32 bits) -> something ($WORD bits)."# ) ;
46-
47- // Nothing to normalize (Only a single quote)
48- let mut s = "normalize-stderr-32bit: \" something (32 bits) -> something ($WORD bits)." ;
49- let first = parse_normalization_string ( & mut s) ;
50- assert_eq ! ( first, None ) ;
51- assert_eq ! ( s, "normalize-stderr-32bit: \" something (32 bits) -> something ($WORD bits)." ) ;
52-
53- // Nothing to normalize (Three quotes)
54- let mut s = "normalize-stderr-32bit: \" something (32 bits)\" -> \" something ($WORD bits)." ;
55- let first = parse_normalization_string ( & mut s) ;
56- assert_eq ! ( first, Some ( "something (32 bits)" . to_owned( ) ) ) ;
57- assert_eq ! ( s, " -> \" something ($WORD bits)." ) ;
58-
59- // Nothing to normalize (No quotes, 16-bit)
60- let mut s = "normalize-stderr-16bit: something (16 bits) -> something ($WORD bits)." ;
61- let first = parse_normalization_string ( & mut s) ;
62- assert_eq ! ( first, None ) ;
63- assert_eq ! ( s, r#"normalize-stderr-16bit: something (16 bits) -> something ($WORD bits)."# ) ;
35+ fn test_parse_normalize_rule ( ) {
36+ let good_data = & [
37+ (
38+ r#"normalize-stderr-32bit: "something (32 bits)" -> "something ($WORD bits)""# ,
39+ "something (32 bits)" ,
40+ "something ($WORD bits)" ,
41+ ) ,
42+ // FIXME(#126370): A colon after the header name should be mandatory,
43+ // but currently is not, and there are many tests that lack the colon.
44+ (
45+ r#"normalize-stderr-32bit "something (32 bits)" -> "something ($WORD bits)""# ,
46+ "something (32 bits)" ,
47+ "something ($WORD bits)" ,
48+ ) ,
49+ ] ;
50+
51+ for & ( input, expected_regex, expected_replacement) in good_data {
52+ let parsed = parse_normalize_rule ( input) ;
53+ let parsed =
54+ parsed. as_ref ( ) . map ( |( regex, replacement) | ( regex. as_str ( ) , replacement. as_str ( ) ) ) ;
55+ assert_eq ! ( parsed, Some ( ( expected_regex, expected_replacement) ) ) ;
56+ }
57+
58+ let bad_data = & [
59+ r#"normalize-stderr-16bit: something (16 bits) -> something ($WORD bits)"# ,
60+ r#"normalize-stderr-32bit: something (32 bits) -> something ($WORD bits)"# ,
61+ r#"normalize-stderr-32bit: "something (32 bits) -> something ($WORD bits)"# ,
62+ r#"normalize-stderr-32bit: "something (32 bits)" -> "something ($WORD bits)"# ,
63+ r#"normalize-stderr-32bit: "something (32 bits)" -> "something ($WORD bits)"."# ,
64+ ] ;
65+
66+ for & input in bad_data {
67+ let parsed = parse_normalize_rule ( input) ;
68+ assert_eq ! ( parsed, None ) ;
69+ }
6470}
6571
6672#[ derive( Default ) ]
0 commit comments