@@ -3,7 +3,7 @@ use std::path::Path;
3
3
use std:: str:: FromStr ;
4
4
5
5
use crate :: common:: { Config , Debugger , Mode } ;
6
- use crate :: header:: { parse_normalization_string , EarlyProps , HeadersCache } ;
6
+ use crate :: header:: { parse_normalize_rule , EarlyProps , HeadersCache } ;
7
7
8
8
use super :: iter_header;
9
9
@@ -32,35 +32,41 @@ fn make_test_description<R: Read>(
32
32
}
33
33
34
34
#[ 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
+ }
64
70
}
65
71
66
72
#[ derive( Default ) ]
0 commit comments