diff options
author | Dan Gohman <gohman@apple.com> | 2010-08-04 16:42:38 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2010-08-04 16:42:38 +0000 |
commit | 34f68fc040a920b32ee11c5a8f63ba8a75240f26 (patch) | |
tree | e843eb1009276fd78a0977c5a835dded9b18edf1 /utils | |
parent | 56fb5f920e279d0fa5c50bf2c274d58a51d2c582 (diff) | |
download | llvm-34f68fc040a920b32ee11c5a8f63ba8a75240f26.tar.gz llvm-34f68fc040a920b32ee11c5a8f63ba8a75240f26.tar.bz2 llvm-34f68fc040a920b32ee11c5a8f63ba8a75240f26.tar.xz |
Print a message when a test failure is due to stderr output
alone, rather than just an exit code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110208 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils')
-rw-r--r-- | utils/lit/lit/TestRunner.py | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/utils/lit/lit/TestRunner.py b/utils/lit/lit/TestRunner.py index aae16f6f6a..9776784a16 100644 --- a/utils/lit/lit/TestRunner.py +++ b/utils/lit/lit/TestRunner.py @@ -470,13 +470,17 @@ def parseIntegratedTestScript(test, normalize_slashes=False): isXFail = isExpectedFail(xfails, xtargets, test.suite.config.target_triple) return script,isXFail,tmpBase,execdir -def formatTestOutput(status, out, err, exitCode, script): +def formatTestOutput(status, out, err, exitCode, failDueToStderr, script): output = StringIO.StringIO() print >>output, "Script:" print >>output, "--" print >>output, '\n'.join(script) print >>output, "--" - print >>output, "Exit Code: %r" % exitCode + print >>output, "Exit Code: %r" % exitCode, + if failDueToStderr: + print >>output, "(but there was output on stderr)" + else: + print >>output if out: print >>output, "Command Output (stdout):" print >>output, "--" @@ -511,8 +515,8 @@ def executeTclTest(test, litConfig): if len(res) == 2: return res - # Test for failure. In addition to the exit code, Tcl commands fail - # if there is any standard error output. + # Test for failure. In addition to the exit code, Tcl commands are + # considered to fail if there is any standard error output. out,err,exitCode = res if isXFail: ok = exitCode != 0 or err @@ -524,7 +528,11 @@ def executeTclTest(test, litConfig): if ok: return (status,'') - return formatTestOutput(status, out, err, exitCode, script) + # Set a flag for formatTestOutput so it can explain why the test was + # considered to have failed, despite having an exit code of 0. + failDueToStderr = exitCode == 0 and err + + return formatTestOutput(status, out, err, exitCode, failDueToStderr, script) def executeShTest(test, litConfig, useExternalSh): if test.config.unsupported: @@ -560,4 +568,7 @@ def executeShTest(test, litConfig, useExternalSh): if ok: return (status,'') - return formatTestOutput(status, out, err, exitCode, script) + # Sh tests are not considered to fail just from stderr output. + failDueToStderr = False + + return formatTestOutput(status, out, err, exitCode, failDueToStderr, script) |