lit: Add 'valgrind' and 'valgrind-leaks' features when valgrind is used.

- These can be used with the XFAIL options.

llvm-svn: 166303
This commit is contained in:
Daniel Dunbar 2012-10-19 20:12:00 +00:00
parent 37c4275a92
commit 519a349c8a
5 changed files with 26 additions and 5 deletions

View File

@ -125,6 +125,10 @@ EXECUTION OPTIONS
*--error-exitcode* argument for valgrind is used so that valgrind failures will
cause the program to exit with a non-zero status.
When this option is enabled, **lit** will also automatically provide a
"valgrind" feature that can be used to conditionally disable (or expect failure
in) certain tests.
**--vg-arg**\ =\ *ARG*
@ -133,6 +137,15 @@ EXECUTION OPTIONS
**--vg-leak**
When *--vg* is used, enable memory leak checks. When this option is enabled,
**lit** will also automatically provide a "valgrind-leaks" feature that can be
used to conditionally disable (or expect failure in) certain tests.
**--time-tests**
Track the wall time individual tests take to execute and includes the results in

View File

@ -23,4 +23,4 @@ config.test_exec_root = None
config.target_triple = 'foo'
# available_features: Used by ShTest and TclTest formats for REQUIRES checks.
config.available_features = ['some-feature-name']
config.available_features.add('some-feature-name')

View File

@ -0,0 +1,4 @@
// This test should XPASS, when run without valgrind.
// RUN: true
// XFAIL: valgrind

View File

@ -42,14 +42,11 @@ class LitConfig:
self.numWarnings = 0
self.valgrindArgs = []
self.valgrindTriple = ""
if self.useValgrind:
self.valgrindTriple = "-vg"
self.valgrindArgs = ['valgrind', '-q', '--run-libc-freeres=no',
'--tool=memcheck', '--trace-children=yes',
'--error-exitcode=123']
if self.valgrindLeakCheck:
self.valgrindTriple += "_leak"
self.valgrindArgs.append('--leak-check=full')
else:
# The default is 'summary'.

View File

@ -29,6 +29,13 @@ class TestingConfig:
'TMP' : os.environ.get('TMP',''),
})
# Set the default available features based on the LitConfig.
available_features = []
if litConfig.useValgrind:
available_features.append('valgrind')
if litConfig.valgrindLeakCheck:
available_features.append('valgrind-leaks')
config = TestingConfig(parent,
name = '<unnamed>',
suffixes = set(),
@ -40,7 +47,7 @@ class TestingConfig:
test_exec_root = None,
test_source_root = None,
excludes = [],
available_features = [])
available_features = available_features)
if os.path.exists(path):
# FIXME: Improve detection and error reporting of errors in the