aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Trick <atrick@apple.com>2011-08-30 17:42:33 +0000
committerAndrew Trick <atrick@apple.com>2011-08-30 17:42:33 +0000
commit7c12837916e647a9225fe2433f826588f2f28726 (patch)
tree5bfadd50a629303c28bacd808f029525c59b5c37
parent0aaa9195b53e693eb8618fef305e3799b5b77771 (diff)
downloadexternal_llvm-7c12837916e647a9225fe2433f826588f2f28726.zip
external_llvm-7c12837916e647a9225fe2433f826588f2f28726.tar.gz
external_llvm-7c12837916e647a9225fe2433f826588f2f28726.tar.bz2
Lit option for ignoring stderr output.
This is useful for testing a build a temporarily hand instrumented build. Patch by arrowdodger! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138804 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--test/lit.cfg3
-rw-r--r--utils/lit/lit/LitConfig.py3
-rw-r--r--utils/lit/lit/TestFormats.py4
-rw-r--r--utils/lit/lit/TestRunner.py6
-rwxr-xr-xutils/lit/lit/main.py2
5 files changed, 14 insertions, 4 deletions
diff --git a/test/lit.cfg b/test/lit.cfg
index ef56473..af04337 100644
--- a/test/lit.cfg
+++ b/test/lit.cfg
@@ -12,6 +12,9 @@ config.name = 'LLVM'
# testFormat: The test format to use to interpret tests.
config.test_format = lit.formats.TclTest()
+# To ignore test output on stderr so it doesn't trigger failures uncomment this:
+#config.test_format = lit.formats.TclTest(ignoreStdErr=True)
+
# suffixes: A list of file extensions to treat as test files, this is actually
# set by on_clone().
config.suffixes = []
diff --git a/utils/lit/lit/LitConfig.py b/utils/lit/lit/LitConfig.py
index bda9174..2cc2781 100644
--- a/utils/lit/lit/LitConfig.py
+++ b/utils/lit/lit/LitConfig.py
@@ -20,7 +20,7 @@ class LitConfig:
def __init__(self, progname, path, quiet,
useValgrind, valgrindLeakCheck, valgrindArgs,
useTclAsSh,
- noExecute, debug, isWindows,
+ noExecute, ignoreStdErr, debug, isWindows,
params):
# The name of the test runner.
self.progname = progname
@@ -32,6 +32,7 @@ class LitConfig:
self.valgrindUserArgs = list(valgrindArgs)
self.useTclAsSh = bool(useTclAsSh)
self.noExecute = noExecute
+ self.ignoreStdErr = ignoreStdErr
self.debug = debug
self.isWindows = bool(isWindows)
self.params = dict(params)
diff --git a/utils/lit/lit/TestFormats.py b/utils/lit/lit/TestFormats.py
index 6dda2fd..d1c0558 100644
--- a/utils/lit/lit/TestFormats.py
+++ b/utils/lit/lit/TestFormats.py
@@ -125,7 +125,11 @@ class ShTest(FileBasedTest):
self.execute_external)
class TclTest(FileBasedTest):
+ def __init__(self, ignoreStdErr=False):
+ self.ignoreStdErr = ignoreStdErr
+
def execute(self, test, litConfig):
+ litConfig.ignoreStdErr = self.ignoreStdErr
return TestRunner.executeTclTest(test, litConfig)
###
diff --git a/utils/lit/lit/TestRunner.py b/utils/lit/lit/TestRunner.py
index a40644c..0cc1f39 100644
--- a/utils/lit/lit/TestRunner.py
+++ b/utils/lit/lit/TestRunner.py
@@ -535,13 +535,13 @@ def executeTclTest(test, litConfig):
# considered to fail if there is any standard error output.
out,err,exitCode = res
if isXFail:
- ok = exitCode != 0 or err
+ ok = exitCode != 0 or err and not litConfig.ignoreStdErr
if ok:
status = Test.XFAIL
else:
status = Test.XPASS
else:
- ok = exitCode == 0 and not err
+ ok = exitCode == 0 and (not err or litConfig.ignoreStdErr)
if ok:
status = Test.PASS
else:
@@ -552,7 +552,7 @@ def executeTclTest(test, litConfig):
# 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
+ failDueToStderr = exitCode == 0 and err and not litConfig.ignoreStdErr
return formatTestOutput(status, out, err, exitCode, failDueToStderr, script)
diff --git a/utils/lit/lit/main.py b/utils/lit/lit/main.py
index 13d2630..e1a380c 100755
--- a/utils/lit/lit/main.py
+++ b/utils/lit/lit/main.py
@@ -328,6 +328,7 @@ def load_test_suite(inputs):
valgrindArgs = [],
useTclAsSh = False,
noExecute = False,
+ ignoreStdErr = False,
debug = False,
isWindows = (platform.system()=='Windows'),
params = {})
@@ -485,6 +486,7 @@ def main(builtinParameters = {}): # Bump the GIL check interval, its more imp
valgrindArgs = opts.valgrindArgs,
useTclAsSh = opts.useTclAsSh,
noExecute = opts.noExecute,
+ ignoreStdErr = False,
debug = opts.debug,
isWindows = (platform.system()=='Windows'),
params = userParams)