summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2010-08-04 16:42:38 +0000
committerDan Gohman <gohman@apple.com>2010-08-04 16:42:38 +0000
commit34f68fc040a920b32ee11c5a8f63ba8a75240f26 (patch)
treee843eb1009276fd78a0977c5a835dded9b18edf1 /utils
parent56fb5f920e279d0fa5c50bf2c274d58a51d2c582 (diff)
downloadllvm-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.py23
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)