From: Daniel Dunbar Date: Fri, 19 Oct 2012 20:12:00 +0000 (+0000) Subject: lit: Add 'valgrind' and 'valgrind-leaks' features when valgrind is used. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=f854597fc1a183a9d13827a6eeb9f53a69819497;p=oota-llvm.git lit: Add 'valgrind' and 'valgrind-leaks' features when valgrind is used. - These can be used with the XFAIL options. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166303 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/docs/CommandGuide/lit.rst b/docs/CommandGuide/lit.rst index 3eb0be91f13..841bd20d17d 100644 --- a/docs/CommandGuide/lit.rst +++ b/docs/CommandGuide/lit.rst @@ -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 diff --git a/utils/lit/lit/ExampleTests/lit.cfg b/utils/lit/lit/ExampleTests/lit.cfg index 20ee37dcef2..2629918d9f6 100644 --- a/utils/lit/lit/ExampleTests/lit.cfg +++ b/utils/lit/lit/ExampleTests/lit.cfg @@ -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') diff --git a/utils/lit/lit/ExampleTests/vg-fail.c b/utils/lit/lit/ExampleTests/vg-fail.c new file mode 100644 index 00000000000..e3339ff91aa --- /dev/null +++ b/utils/lit/lit/ExampleTests/vg-fail.c @@ -0,0 +1,4 @@ +// This test should XPASS, when run without valgrind. + +// RUN: true +// XFAIL: valgrind diff --git a/utils/lit/lit/LitConfig.py b/utils/lit/lit/LitConfig.py index c71c0ccdea9..0a359a3db8e 100644 --- a/utils/lit/lit/LitConfig.py +++ b/utils/lit/lit/LitConfig.py @@ -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'. diff --git a/utils/lit/lit/TestingConfig.py b/utils/lit/lit/TestingConfig.py index 1465fec6f66..192e140538f 100644 --- a/utils/lit/lit/TestingConfig.py +++ b/utils/lit/lit/TestingConfig.py @@ -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 = '', 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