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