@@ -19,6 +19,113 @@ def junit_from_xml(xml):
19
19
20
20
21
21
class TestReports (unittest .TestCase ):
22
+ def test_find_failure_ninja_logs (self ):
23
+ failures = generate_test_report_lib .find_failure_in_ninja_logs (
24
+ [
25
+ [
26
+ "[1/5] test/1.stamp" ,
27
+ "[2/5] test/2.stamp" ,
28
+ "[3/5] test/3.stamp" ,
29
+ "[4/5] test/4.stamp" ,
30
+ "FAILED: test/4.stamp" ,
31
+ "touch test/4.stamp" ,
32
+ "Wow! This system is really broken!" ,
33
+ "[5/5] test/5.stamp" ,
34
+ ],
35
+ ]
36
+ )
37
+ self .assertEqual (len (failures ), 1 )
38
+ self .assertEqual (
39
+ failures [0 ],
40
+ (
41
+ "test/4.stamp" ,
42
+ dedent (
43
+ """\
44
+ FAILED: test/4.stamp
45
+ touch test/4.stamp
46
+ Wow! This system is really broken!"""
47
+ ),
48
+ ),
49
+ )
50
+
51
+ def test_no_failure_ninja_log (self ):
52
+ failures = generate_test_report_lib .find_failure_in_ninja_logs (
53
+ [
54
+ [
55
+ "[1/3] test/1.stamp" ,
56
+ "[2/3] test/2.stamp" ,
57
+ "[3/3] test/3.stamp" ,
58
+ ]
59
+ ]
60
+ )
61
+ self .assertEqual (failures , [])
62
+
63
+ def test_ninja_log_end (self ):
64
+ failures = generate_test_report_lib .find_failure_in_ninja_logs (
65
+ [
66
+ [
67
+ "[1/3] test/1.stamp" ,
68
+ "[2/3] test/2.stamp" ,
69
+ "[3/3] test/3.stamp" ,
70
+ "FAILED: touch test/3.stamp" ,
71
+ "Wow! This system is really broken!" ,
72
+ "ninja: build stopped: subcommand failed." ,
73
+ ]
74
+ ]
75
+ )
76
+ self .assertEqual (len (failures ), 1 )
77
+ self .assertEqual (
78
+ failures [0 ],
79
+ (
80
+ "test/3.stamp" ,
81
+ dedent (
82
+ """\
83
+ FAILED: touch test/3.stamp
84
+ Wow! This system is really broken!"""
85
+ ),
86
+ ),
87
+ )
88
+
89
+ def test_ninja_log_multiple_failures (self ):
90
+ failures = generate_test_report_lib .find_failure_in_ninja_logs (
91
+ [
92
+ [
93
+ "[1/5] test/1.stamp" ,
94
+ "[2/5] test/2.stamp" ,
95
+ "FAILED: touch test/2.stamp" ,
96
+ "Wow! This system is really broken!" ,
97
+ "[3/5] test/3.stamp" ,
98
+ "[4/5] test/4.stamp" ,
99
+ "FAILED: touch test/4.stamp" ,
100
+ "Wow! This system is maybe broken!" ,
101
+ "[5/5] test/5.stamp" ,
102
+ ]
103
+ ]
104
+ )
105
+ self .assertEqual (len (failures ), 2 )
106
+ self .assertEqual (
107
+ failures [0 ],
108
+ (
109
+ "test/2.stamp" ,
110
+ dedent (
111
+ """\
112
+ FAILED: touch test/2.stamp
113
+ Wow! This system is really broken!"""
114
+ ),
115
+ ),
116
+ )
117
+ self .assertEqual (
118
+ failures [1 ],
119
+ (
120
+ "test/4.stamp" ,
121
+ dedent (
122
+ """\
123
+ FAILED: touch test/4.stamp
124
+ Wow! This system is maybe broken!"""
125
+ ),
126
+ ),
127
+ )
128
+
22
129
def test_title_only (self ):
23
130
self .assertEqual (
24
131
generate_test_report_lib .generate_report ("Foo" , 0 , []),
0 commit comments