190 lines · python
1# Check the various features of the ShTest format.2 3# RUN: rm -f %t.xml4# RUN: not %{lit} -v %{inputs}/shtest-format --xunit-xml-output %t.xml > %t.out5# RUN: FileCheck < %t.out %s6# RUN: FileCheck --check-prefix=XUNIT < %t.xml %s7 8# END.9 10# CHECK: -- Testing:11 12# CHECK: FAIL: shtest-format :: external_shell/fail.txt13# CHECK-NEXT: *** TEST 'shtest-format :: external_shell/fail.txt' FAILED ***14# CHECK: Command Output (stdout):15# CHECK-NEXT: --16# CHECK-NEXT: line 1: failed test output on stdout17# CHECK-NEXT: line 2: failed test output on stdout18# CHECK: Command Output (stderr):19# CHECK-NEXT: --20# CHECK-NOT: --21# CHECK: cat{{(_64)?(\.exe)?}}: {{(cannot open does-not-exist|.*does-not-exist.*: No such file or directory)}}22# CHECK: --23 24# CHECK: FAIL: shtest-format :: external_shell/fail_with_bad_encoding.txt25# 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: FAIL: shtest-format :: external_shell/fail_with_control_chars.txt32# CHECK-NEXT: *** TEST 'shtest-format :: external_shell/fail_with_control_chars.txt' FAILED ***33# CHECK: Command Output (stdout):34# CHECK-NEXT: --35# CHECK-NEXT: a line with {{.*}}control characters{{.*}}.36# CHECK: --37 38# CHECK: PASS: shtest-format :: external_shell/pass.txt39 40# CHECK: FAIL: shtest-format :: fail.txt41# CHECK-NEXT: *** TEST 'shtest-format :: fail.txt' FAILED ***42# CHECK-NEXT: Exit Code: 143# CHECK-EMPTY:44# CHECK-NEXT: Command Output (stdout):45# CHECK-NEXT: --46# CHECK-NEXT: # RUN: at line 147# CHECK-NEXT: printf "line 1: failed test output on stdout\nline 2: failed test output on stdout"48# CHECK-NEXT: executed command: printf 'line 1: failed test output on stdout\nline 2: failed test output on stdout'49# CHECK-NEXT: # .---command stdout------------50# CHECK-NEXT: # | line 1: failed test output on stdout51# CHECK-NEXT: # | line 2: failed test output on stdout52# CHECK-NEXT: # `-----------------------------53# CHECK-NEXT: # RUN: at line 254# CHECK-NEXT: false55# CHECK-NEXT: # executed command: false56# CHECK-NEXT: # note: command had no output on stdout or stderr57# CHECK-NEXT: # error: command failed with exit status: 158# CHECK-EMPTY:59# CHECK-NEXT: --60 61 62# CHECK: UNRESOLVED: shtest-format :: no-test-line.txt63# CHECK: PASS: shtest-format :: pass.txt64# CHECK: UNSUPPORTED: shtest-format :: requires-missing.txt65# CHECK: PASS: shtest-format :: requires-present.txt66# CHECK: UNRESOLVED: shtest-format :: requires-star.txt67# CHECK: PASS: shtest-format :: requires-triple.txt68# CHECK: PASS: shtest-format :: unsupported-expr-false.txt69# CHECK: UNSUPPORTED: shtest-format :: unsupported-expr-true.txt70# CHECK: UNRESOLVED: shtest-format :: unsupported-star.txt71# CHECK: UNSUPPORTED: shtest-format :: unsupported_dir/some-test.txt72# CHECK: PASS: shtest-format :: xfail-expr-false.txt73# CHECK: XFAIL: shtest-format :: xfail-expr-true.txt74# CHECK: XFAIL: shtest-format :: xfail-feature.txt75# CHECK: XFAIL: shtest-format :: xfail-target.txt76# CHECK: XFAIL: shtest-format :: xfail.txt77 78# CHECK: XPASS: shtest-format :: xpass.txt79# CHECK-NEXT: *** TEST 'shtest-format :: xpass.txt' FAILED ***80# CHECK-NEXT: Exit Code: 081# CHECK-EMPTY:82# CHECK-NEXT: Command Output (stdout):83# CHECK-NEXT: --84# CHECK-NEXT: # RUN: at line 185# CHECK-NEXT: true86# CHECK-NEXT: # executed command: true87# CHECK-EMPTY:88# CHECK-NEXT: --89 90# CHECK: Failed Tests (4)91# CHECK: shtest-format :: external_shell/fail.txt92# CHECK: shtest-format :: external_shell/fail_with_bad_encoding.txt93# CHECK: shtest-format :: external_shell/fail_with_control_chars.txt94# CHECK: shtest-format :: fail.txt95 96# CHECK: Unexpectedly Passed Tests (1)97# CHECK: shtest-format :: xpass.txt98 99# CHECK: Testing Time:100# CHECK: Unsupported : 3101# CHECK: Passed : 7102# CHECK: Expectedly Failed : 4103# CHECK: Unresolved : 3104# CHECK: Failed : 4105# CHECK: Unexpectedly Passed: 1106 107 108# XUNIT: <?xml version="1.0" encoding="UTF-8"?>109# XUNIT-NEXT: <testsuites time="{{[0-9.]+}}">110# XUNIT-NEXT: <testsuite name="shtest-format" tests="22" failures="8" skipped="3" time="{{[0-9.]+}}">111 112# XUNIT: <testcase classname="shtest-format.external_shell" name="fail.txt" time="{{[0-9]+\.[0-9]+}}">113# XUNIT-NEXT: <failure{{[ ]*}}>114# XUNIT: </failure>115# XUNIT-NEXT: </testcase>116 117 118# XUNIT: <testcase classname="shtest-format.external_shell" name="fail_with_bad_encoding.txt" time="{{[0-9]+\.[0-9]+}}">119# XUNIT-NEXT: <failure{{[ ]*}}>120# XUNIT: </failure>121# XUNIT-NEXT: </testcase>122 123# XUNIT: <testcase classname="shtest-format.external_shell" name="fail_with_control_chars.txt" time="{{[0-9]+\.[0-9]+}}">124# XUNIT-NEXT: <failure><![CDATA[Exit Code: 1125# XUNIT-EMPTY:126# XUNIT-NEXT: Command Output (stdout):127# XUNIT-NEXT: --128# XUNIT-NEXT: a line with [2;30;41mcontrol characters[0m.129# XUNIT-EMPTY:130# XUNIT-NEXT: --131# XUNIT: ]]></failure>132# XUNIT-NEXT: </testcase>133 134# XUNIT: <testcase classname="shtest-format.external_shell" name="pass.txt" time="{{[0-9]+\.[0-9]+}}"/>135 136# XUNIT: <testcase classname="shtest-format.shtest-format" name="fail.txt" time="{{[0-9]+\.[0-9]+}}">137# XUNIT-NEXT: <failure{{[ ]*}}>138# XUNIT: </failure>139# XUNIT-NEXT: </testcase>140 141# XUNIT: <testcase classname="shtest-format.shtest-format" name="no-test-line.txt" time="{{[0-9]+\.[0-9]+}}">142# XUNIT-NEXT: <failure{{[ ]*}}>143# XUNIT: </failure>144# XUNIT-NEXT: </testcase>145 146# XUNIT: <testcase classname="shtest-format.shtest-format" name="pass.txt" time="{{[0-9]+\.[0-9]+}}"/>147 148# XUNIT: <testcase classname="shtest-format.shtest-format" name="requires-missing.txt" time="{{[0-9]+\.[0-9]+}}">149# XUNIT-NEXT:<skipped message="Missing required feature(s): a-missing-feature"/>150 151# XUNIT: <testcase classname="shtest-format.shtest-format" name="requires-present.txt" time="{{[0-9]+\.[0-9]+}}"/>152 153# XUNIT: <testcase classname="shtest-format.shtest-format" name="requires-star.txt" time="{{[0-9]+\.[0-9]+}}">154# XUNIT-NEXT: <failure{{[ ]*}}>155# XUNIT: </failure>156# XUNIT-NEXT: </testcase>157 158# XUNIT: <testcase classname="shtest-format.shtest-format" name="requires-triple.txt" time="{{[0-9]+\.[0-9]+}}"/>159 160# XUNIT: <testcase classname="shtest-format.shtest-format" name="unsupported-expr-false.txt" time="{{[0-9]+\.[0-9]+}}"/>161 162# XUNIT: <testcase classname="shtest-format.shtest-format" name="unsupported-expr-true.txt" time="{{[0-9]+\.[0-9]+}}">163# XUNIT-NEXT:<skipped message="Unsupported configuration"/>164 165# XUNIT: <testcase classname="shtest-format.shtest-format" name="unsupported-star.txt" time="{{[0-9]+\.[0-9]+}}">166# XUNIT-NEXT: <failure{{[ ]*}}>167# XUNIT: </failure>168# XUNIT-NEXT: </testcase>169 170# XUNIT: <testcase classname="shtest-format.unsupported_dir" name="some-test.txt" time="{{[0-9]+\.[0-9]+}}">171# XUNIT-NEXT:<skipped message="Unsupported configuration"/>172 173# XUNIT: <testcase classname="shtest-format.shtest-format" name="xfail-expr-false.txt" time="{{[0-9]+\.[0-9]+}}"/>174 175# XUNIT: <testcase classname="shtest-format.shtest-format" name="xfail-expr-true.txt" time="{{[0-9]+\.[0-9]+}}"/>176 177# XUNIT: <testcase classname="shtest-format.shtest-format" name="xfail-feature.txt" time="{{[0-9]+\.[0-9]+}}"/>178 179# XUNIT: <testcase classname="shtest-format.shtest-format" name="xfail-target.txt" time="{{[0-9]+\.[0-9]+}}"/>180 181# XUNIT: <testcase classname="shtest-format.shtest-format" name="xfail.txt" time="{{[0-9]+\.[0-9]+}}"/>182 183# XUNIT: <testcase classname="shtest-format.shtest-format" name="xpass.txt" time="{{[0-9]+\.[0-9]+}}">184# XUNIT-NEXT: <failure{{[ ]*}}>185# XUNIT: </failure>186# XUNIT-NEXT: </testcase>187 188# XUNIT: </testsuite>189# XUNIT-NEXT: </testsuites>190