From 519a349c8a91873edc3b68a522f7338559cbe0a0 Mon Sep 17 00:00:00 2001 From: Daniel Dunbar Date: Fri, 19 Oct 2012 20:12:00 +0000 Subject: [PATCH] lit: Add 'valgrind' and 'valgrind-leaks' features when valgrind is used. - These can be used with the XFAIL options. llvm-svn: 166303 --- llvm/docs/CommandGuide/lit.rst | 13 +++++++++++++ llvm/utils/lit/lit/ExampleTests/lit.cfg | 2 +- llvm/utils/lit/lit/ExampleTests/vg-fail.c | 4 ++++ llvm/utils/lit/lit/LitConfig.py | 3 --- llvm/utils/lit/lit/TestingConfig.py | 9 ++++++++- 5 files changed, 26 insertions(+), 5 deletions(-) create mode 100644 llvm/utils/lit/lit/ExampleTests/vg-fail.c diff --git a/llvm/docs/CommandGuide/lit.rst b/llvm/docs/CommandGuide/lit.rst index 3eb0be9..841bd20 100644 --- a/llvm/docs/CommandGuide/lit.rst +++ b/llvm/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/llvm/utils/lit/lit/ExampleTests/lit.cfg b/llvm/utils/lit/lit/ExampleTests/lit.cfg index 20ee37d..2629918 100644 --- a/llvm/utils/lit/lit/ExampleTests/lit.cfg +++ b/llvm/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/llvm/utils/lit/lit/ExampleTests/vg-fail.c b/llvm/utils/lit/lit/ExampleTests/vg-fail.c new file mode 100644 index 0000000..e3339ff --- /dev/null +++ b/llvm/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/llvm/utils/lit/lit/LitConfig.py b/llvm/utils/lit/lit/LitConfig.py index c71c0cc..0a359a3 100644 --- a/llvm/utils/lit/lit/LitConfig.py +++ b/llvm/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/llvm/utils/lit/lit/TestingConfig.py b/llvm/utils/lit/lit/TestingConfig.py index 1465fec..192e140 100644 --- a/llvm/utils/lit/lit/TestingConfig.py +++ b/llvm/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 -- 2.7.4