1# Check the various features of the ShTest format.
2#
3# RUN: rm -f %t.xml
4# RUN: not %{lit} -j 1 -v %{inputs}/shtest-format --xunit-xml-output %t.xml > %t.out
5# RUN: FileCheck < %t.out %s
6# RUN: FileCheck --check-prefix=XUNIT < %t.xml %s
7
8# END.
9
10# CHECK: -- Testing:
11
12# CHECK: PASS: shtest-format :: argv0.txt
13# CHECK: FAIL: shtest-format :: external_shell/fail.txt
14# CHECK-NEXT: *** TEST 'shtest-format :: external_shell/fail.txt' FAILED ***
15# CHECK: Command Output (stdout):
16# CHECK-NEXT: --
17# CHECK-NEXT: line 1: failed test output on stdout
18# CHECK-NEXT: line 2: failed test output on stdout
19# CHECK: Command Output (stderr):
20# CHECK-NEXT: --
21# CHECK-NEXT: cat{{(\.exe)?}}: does-not-exist: No such file or directory
22# CHECK: --
23
24# CHECK: FAIL: shtest-format :: external_shell/fail_with_bad_encoding.txt
25# CHECK-NEXT: *** TEST 'shtest-format :: external_shell/fail_with_bad_encoding.txt' FAILED ***
26# CHECK: Command Output (stdout):
27# CHECK-NEXT: --
28# CHECK-NEXT: a line with bad encoding:
29# CHECK: --
30
31# CHECK: PASS: shtest-format :: external_shell/pass.txt
32
33# CHECK: FAIL: shtest-format :: fail.txt
34# CHECK-NEXT: *** TEST 'shtest-format :: fail.txt' FAILED ***
35# CHECK-NEXT: Script:
36# CHECK-NEXT: --
37# CHECK-NEXT: printf "line 1
38# CHECK-NEXT: false
39# CHECK-NEXT: --
40# CHECK-NEXT: Exit Code: 1
41#
42# CHECK: Command Output (stdout):
43# CHECK-NEXT: --
44# CHECK-NEXT: $ ":" "RUN: at line 1"
45# CHECK-NEXT: $ "printf"
46# CHECK-NEXT: # command output:
47# CHECK-NEXT: line 1: failed test output on stdout
48# CHECK-NEXT: line 2: failed test output on stdout
49
50# CHECK: UNRESOLVED: shtest-format :: no-test-line.txt
51# CHECK: PASS: shtest-format :: pass.txt
52# CHECK: UNSUPPORTED: shtest-format :: requires-any-missing.txt
53# CHECK: PASS: shtest-format :: requires-any-present.txt
54# CHECK: UNSUPPORTED: shtest-format :: requires-missing.txt
55# CHECK: PASS: shtest-format :: requires-present.txt
56# CHECK: UNRESOLVED: shtest-format :: requires-star.txt
57# CHECK: UNSUPPORTED: shtest-format :: requires-triple.txt
58# CHECK: PASS: shtest-format :: unsupported-expr-false.txt
59# CHECK: UNSUPPORTED: shtest-format :: unsupported-expr-true.txt
60# CHECK: UNRESOLVED: shtest-format :: unsupported-star.txt
61# CHECK: UNSUPPORTED: shtest-format :: unsupported_dir/some-test.txt
62# CHECK: PASS: shtest-format :: xfail-expr-false.txt
63# CHECK: XFAIL: shtest-format :: xfail-expr-true.txt
64# CHECK: XFAIL: shtest-format :: xfail-feature.txt
65# CHECK: XFAIL: shtest-format :: xfail-target.txt
66# CHECK: XFAIL: shtest-format :: xfail.txt
67# CHECK: XPASS: shtest-format :: xpass.txt
68# CHECK-NEXT: *** TEST 'shtest-format :: xpass.txt' FAILED ***
69# CHECK-NEXT: Script
70# CHECK-NEXT: --
71# CHECK-NEXT: true
72# CHECK-NEXT: --
73# CHECK: Testing Time
74
75# CHECK: Unexpected Passing Tests (1)
76# CHECK: shtest-format :: xpass.txt
77
78# CHECK: Failing Tests (3)
79# CHECK: shtest-format :: external_shell/fail.txt
80# CHECK: shtest-format :: external_shell/fail_with_bad_encoding.txt
81# CHECK: shtest-format :: fail.txt
82
83# CHECK: Expected Passes    : 7
84# CHECK: Expected Failures  : 4
85# CHECK: Unsupported Tests  : 5
86# CHECK: Unresolved Tests   : 3
87# CHECK: Unexpected Passes  : 1
88# CHECK: Unexpected Failures: 3
89
90
91# XUNIT: <?xml version="1.0" encoding="UTF-8" ?>
92# XUNIT-NEXT: <testsuites>
93# XUNIT-NEXT: <testsuite name="shtest-format" tests="23" failures="7" skipped="5">
94
95# XUNIT: <testcase classname="shtest-format.shtest-format" name="argv0.txt" time="{{[0-9]+\.[0-9]+}}"/>
96
97# XUNIT: <testcase classname="shtest-format.external_shell" name="fail.txt" time="{{[0-9]+\.[0-9]+}}">
98# XUNIT-NEXT: <failure{{[ ]*}}>
99# XUNIT: </failure>
100# XUNIT-NEXT: </testcase>
101
102
103# XUNIT: <testcase classname="shtest-format.external_shell" name="fail_with_bad_encoding.txt" time="{{[0-9]+\.[0-9]+}}">
104# XUNIT-NEXT: <failure{{[ ]*}}>
105# XUNIT: </failure>
106# XUNIT-NEXT: </testcase>
107
108# XUNIT: <testcase classname="shtest-format.external_shell" name="pass.txt" time="{{[0-9]+\.[0-9]+}}"/>
109
110# XUNIT: <testcase classname="shtest-format.shtest-format" name="fail.txt" time="{{[0-9]+\.[0-9]+}}">
111# XUNIT-NEXT: <failure{{[ ]*}}>
112# XUNIT: </failure>
113# XUNIT-NEXT: </testcase>
114
115# XUNIT: <testcase classname="shtest-format.shtest-format" name="no-test-line.txt" time="{{[0-9]+\.[0-9]+}}">
116# XUNIT-NEXT: <failure{{[ ]*}}>
117# XUNIT: </failure>
118# XUNIT-NEXT: </testcase>
119
120# XUNIT: <testcase classname="shtest-format.shtest-format" name="pass.txt" time="{{[0-9]+\.[0-9]+}}"/>
121
122# XUNIT: <testcase classname="shtest-format.shtest-format" name="requires-any-missing.txt" time="{{[0-9]+\.[0-9]+}}">
123# XUNIT-NEXT:<skipped message="Skipping because of: a-missing-feature || a-missing-feature-2" />
124
125# XUNIT: <testcase classname="shtest-format.shtest-format" name="requires-any-present.txt" time="{{[0-9]+\.[0-9]+}}"/>
126
127# XUNIT: <testcase classname="shtest-format.shtest-format" name="requires-missing.txt" time="{{[0-9]+\.[0-9]+}}">
128# XUNIT-NEXT:<skipped message="Skipping because of: a-missing-feature" />
129
130# XUNIT: <testcase classname="shtest-format.shtest-format" name="requires-present.txt" time="{{[0-9]+\.[0-9]+}}"/>
131
132# XUNIT: <testcase classname="shtest-format.shtest-format" name="requires-star.txt" time="{{[0-9]+\.[0-9]+}}">
133# XUNIT-NEXT: <failure{{[ ]*}}>
134# XUNIT: </failure>
135# XUNIT-NEXT: </testcase>
136
137
138# XUNIT: <testcase classname="shtest-format.shtest-format" name="requires-triple.txt" time="{{[0-9]+\.[0-9]+}}">
139# XUNIT-NEXT:<skipped message="Skipping because of: x86_64" />
140
141# XUNIT: <testcase classname="shtest-format.shtest-format" name="unsupported-expr-false.txt" time="{{[0-9]+\.[0-9]+}}"/>
142
143# XUNIT: <testcase classname="shtest-format.shtest-format" name="unsupported-expr-true.txt" time="{{[0-9]+\.[0-9]+}}">
144# XUNIT-NEXT:<skipped message="Skipping because of configuration." />
145
146# XUNIT: <testcase classname="shtest-format.shtest-format" name="unsupported-star.txt" time="{{[0-9]+\.[0-9]+}}">
147# XUNIT-NEXT: <failure{{[ ]*}}>
148# XUNIT: </failure>
149# XUNIT-NEXT: </testcase>
150
151# XUNIT: <testcase classname="shtest-format.unsupported_dir" name="some-test.txt" time="{{[0-9]+\.[0-9]+}}">
152# XUNIT-NEXT:<skipped message="Skipping because of configuration." />
153
154# XUNIT: <testcase classname="shtest-format.shtest-format" name="xfail-expr-false.txt" time="{{[0-9]+\.[0-9]+}}"/>
155
156# XUNIT: <testcase classname="shtest-format.shtest-format" name="xfail-expr-true.txt" time="{{[0-9]+\.[0-9]+}}"/>
157
158# XUNIT: <testcase classname="shtest-format.shtest-format" name="xfail-feature.txt" time="{{[0-9]+\.[0-9]+}}"/>
159
160# XUNIT: <testcase classname="shtest-format.shtest-format" name="xfail-target.txt" time="{{[0-9]+\.[0-9]+}}"/>
161
162# XUNIT: <testcase classname="shtest-format.shtest-format" name="xfail.txt" time="{{[0-9]+\.[0-9]+}}"/>
163
164# XUNIT: <testcase classname="shtest-format.shtest-format" name="xpass.txt" time="{{[0-9]+\.[0-9]+}}">
165# XUNIT-NEXT: <failure{{[ ]*}}>
166# XUNIT: </failure>
167# XUNIT-NEXT: </testcase>
168
169# XUNIT: </testsuite>
170# XUNIT-NEXT: </testsuites>
171