Skip to content
This repository was archived by the owner on Mar 28, 2020. It is now read-only.

Commit 1ee7070

Browse files
committed
[lit] Fix a bug where UNRESOLVED tests were not handled in the XUnit
XML printer. A test has been added that tries to comprehensively test emitting XUnit XML output for shell tests. Differential Revision: https://reviews.llvm.org/D45567 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330409 91177308-0d34-0410-b5e6-96231b3b80d8
1 parent 113fa20 commit 1ee7070

File tree

2 files changed

+80
-1
lines changed

2 files changed

+80
-1
lines changed

utils/lit/lit/Test.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,8 @@ def getJUnitXML(self):
373373

374374
xml = "<testcase classname='" + class_name + "' name='" + \
375375
test_name + "'"
376-
xml += " time='%.2f'" % (self.result.elapsed,)
376+
xml += " time='{:.2f}'".format(
377+
self.result.elapsed if self.result.elapsed is not None else 0.0)
377378
if self.result.code.isFailure:
378379
xml += ">\n\t<failure >\n" + escape(self.result.output)
379380
xml += "\n\t</failure>\n</testcase>"
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
# RUN: not %{lit} -j 1 -v %{inputs}/shtest-format - --xunit-xml-output %t.xml
2+
# RUN: FileCheck < %t.xml %s
3+
4+
# CHECK: <?xml version="1.0" encoding="UTF-8" ?>
5+
# CHECK-NEXT: <testsuites>
6+
# CHECK-NEXT: <testsuite name='shtest-format' tests='23' failures='7'>
7+
8+
# CHECK: <testcase classname='shtest-format.shtest-format' name='argv0.txt' time='{{[0-9]+\.[0-9]+}}'/>
9+
10+
# CHECK: <testcase classname='shtest-format.external_shell' name='fail.txt' time='{{[0-9]+\.[0-9]+}}'>
11+
# CHECK-NEXT: <failure{{[ ]*}}>
12+
# CHECK: </failure>
13+
# CHECK-NEXT: </testcase>
14+
15+
16+
# CHECK: <testcase classname='shtest-format.external_shell' name='fail_with_bad_encoding.txt' time='{{[0-9]+\.[0-9]+}}'>
17+
# CHECK-NEXT: <failure{{[ ]*}}>
18+
# CHECK: </failure>
19+
# CHECK-NEXT: </testcase>
20+
21+
# CHECK: <testcase classname='shtest-format.external_shell' name='pass.txt' time='{{[0-9]+\.[0-9]+}}'/>
22+
23+
# CHECK: <testcase classname='shtest-format.shtest-format' name='fail.txt' time='{{[0-9]+\.[0-9]+}}'>
24+
# CHECK-NEXT: <failure{{[ ]*}}>
25+
# CHECK: </failure>
26+
# CHECK-NEXT: </testcase>
27+
28+
# CHECK: <testcase classname='shtest-format.shtest-format' name='no-test-line.txt' time='{{[0-9]+\.[0-9]+}}'>
29+
# CHECK-NEXT: <failure{{[ ]*}}>
30+
# CHECK: </failure>
31+
# CHECK-NEXT: </testcase>
32+
33+
# CHECK: <testcase classname='shtest-format.shtest-format' name='pass.txt' time='{{[0-9]+\.[0-9]+}}'/>
34+
35+
# CHECK: <testcase classname='shtest-format.shtest-format' name='requires-any-missing.txt' time='{{[0-9]+\.[0-9]+}}'/>
36+
37+
# CHECK: <testcase classname='shtest-format.shtest-format' name='requires-any-present.txt' time='{{[0-9]+\.[0-9]+}}'/>
38+
39+
# CHECK: <testcase classname='shtest-format.shtest-format' name='requires-missing.txt' time='{{[0-9]+\.[0-9]+}}'/>
40+
41+
# CHECK: <testcase classname='shtest-format.shtest-format' name='requires-present.txt' time='{{[0-9]+\.[0-9]+}}'/>
42+
43+
# CHECK: <testcase classname='shtest-format.shtest-format' name='requires-star.txt' time='{{[0-9]+\.[0-9]+}}'>
44+
# CHECK-NEXT: <failure{{[ ]*}}>
45+
# CHECK: </failure>
46+
# CHECK-NEXT: </testcase>
47+
48+
49+
# CHECK: <testcase classname='shtest-format.shtest-format' name='requires-triple.txt' time='{{[0-9]+\.[0-9]+}}'/>
50+
51+
# CHECK: <testcase classname='shtest-format.shtest-format' name='unsupported-expr-false.txt' time='{{[0-9]+\.[0-9]+}}'/>
52+
53+
# CHECK: <testcase classname='shtest-format.shtest-format' name='unsupported-expr-true.txt' time='{{[0-9]+\.[0-9]+}}'/>
54+
55+
# CHECK: <testcase classname='shtest-format.shtest-format' name='unsupported-star.txt' time='{{[0-9]+\.[0-9]+}}'>
56+
# CHECK-NEXT: <failure{{[ ]*}}>
57+
# CHECK: </failure>
58+
# CHECK-NEXT: </testcase>
59+
60+
# CHECK: <testcase classname='shtest-format.unsupported_dir' name='some-test.txt' time='{{[0-9]+\.[0-9]+}}'/>
61+
62+
# CHECK: <testcase classname='shtest-format.shtest-format' name='xfail-expr-false.txt' time='{{[0-9]+\.[0-9]+}}'/>
63+
64+
# CHECK: <testcase classname='shtest-format.shtest-format' name='xfail-expr-true.txt' time='{{[0-9]+\.[0-9]+}}'/>
65+
66+
# CHECK: <testcase classname='shtest-format.shtest-format' name='xfail-feature.txt' time='{{[0-9]+\.[0-9]+}}'/>
67+
68+
# CHECK: <testcase classname='shtest-format.shtest-format' name='xfail-target.txt' time='{{[0-9]+\.[0-9]+}}'/>
69+
70+
# CHECK: <testcase classname='shtest-format.shtest-format' name='xfail.txt' time='{{[0-9]+\.[0-9]+}}'/>
71+
72+
# CHECK: <testcase classname='shtest-format.shtest-format' name='xpass.txt' time='{{[0-9]+\.[0-9]+}}'>
73+
# CHECK-NEXT: <failure{{[ ]*}}>
74+
# CHECK: </failure>
75+
# CHECK-NEXT: </testcase>
76+
77+
# CHECK: </testsuite>
78+
# CHECK-NEXT: </testsuites>

0 commit comments

Comments
 (0)