diff options
author | dim <dim@FreeBSD.org> | 2012-12-02 13:10:19 +0000 |
---|---|---|
committer | dim <dim@FreeBSD.org> | 2012-12-02 13:10:19 +0000 |
commit | 6de2c08bc400b4aca9fb46684e8bdb56eed9b09f (patch) | |
tree | 32b4679ab4b8f28e5228daafc65e9dc436935353 /utils/lit/lit | |
parent | 4dc93743c9d40c29c0a3bec2aae328cac0d289e8 (diff) | |
download | FreeBSD-src-6de2c08bc400b4aca9fb46684e8bdb56eed9b09f.zip FreeBSD-src-6de2c08bc400b4aca9fb46684e8bdb56eed9b09f.tar.gz |
Vendor import of llvm release_32 branch r168974 (effectively, 3.2 RC2):
http://llvm.org/svn/llvm-project/llvm/branches/release_32@168974
Diffstat (limited to 'utils/lit/lit')
-rw-r--r-- | utils/lit/lit/ExampleTests/LLVM.InTree/test/Bar/bar-test.ll | 3 | ||||
-rw-r--r-- | utils/lit/lit/ExampleTests/LLVM.InTree/test/lit.cfg | 2 | ||||
-rw-r--r-- | utils/lit/lit/ExampleTests/LLVM.OutOfTree/src/test/lit.cfg | 2 | ||||
-rw-r--r-- | utils/lit/lit/ExampleTests/lit.cfg | 2 | ||||
-rw-r--r-- | utils/lit/lit/ExampleTests/vg-fail.c | 4 | ||||
-rw-r--r-- | utils/lit/lit/ExampleTests/xfail-feature.c | 4 | ||||
-rw-r--r-- | utils/lit/lit/LitConfig.py | 3 | ||||
-rw-r--r-- | utils/lit/lit/TestRunner.py | 34 | ||||
-rw-r--r-- | utils/lit/lit/TestingConfig.py | 10 | ||||
-rw-r--r-- | utils/lit/lit/Util.py | 2 |
10 files changed, 36 insertions, 30 deletions
diff --git a/utils/lit/lit/ExampleTests/LLVM.InTree/test/Bar/bar-test.ll b/utils/lit/lit/ExampleTests/LLVM.InTree/test/Bar/bar-test.ll deleted file mode 100644 index 3017b13..0000000 --- a/utils/lit/lit/ExampleTests/LLVM.InTree/test/Bar/bar-test.ll +++ /dev/null @@ -1,3 +0,0 @@ -; RUN: true -; XFAIL: * -; XTARGET: darwin diff --git a/utils/lit/lit/ExampleTests/LLVM.InTree/test/lit.cfg b/utils/lit/lit/ExampleTests/LLVM.InTree/test/lit.cfg index e9df1e5..3fdd63c 100644 --- a/utils/lit/lit/ExampleTests/LLVM.InTree/test/lit.cfg +++ b/utils/lit/lit/ExampleTests/LLVM.InTree/test/lit.cfg @@ -77,7 +77,7 @@ for line in open(os.path.join(config.llvm_obj_root, 'test', 'site.exp')): excludes = [] -# Provide target_triple for use in XFAIL and XTARGET. +# Provide target_triple for use in XFAIL. config.target_triple = site_exp['target_triplet'] # Provide llvm_supports_target for use in local configs. diff --git a/utils/lit/lit/ExampleTests/LLVM.OutOfTree/src/test/lit.cfg b/utils/lit/lit/ExampleTests/LLVM.OutOfTree/src/test/lit.cfg index e9df1e5..3fdd63c 100644 --- a/utils/lit/lit/ExampleTests/LLVM.OutOfTree/src/test/lit.cfg +++ b/utils/lit/lit/ExampleTests/LLVM.OutOfTree/src/test/lit.cfg @@ -77,7 +77,7 @@ for line in open(os.path.join(config.llvm_obj_root, 'test', 'site.exp')): excludes = [] -# Provide target_triple for use in XFAIL and XTARGET. +# Provide target_triple for use in XFAIL. config.target_triple = site_exp['target_triplet'] # Provide llvm_supports_target for use in local configs. diff --git a/utils/lit/lit/ExampleTests/lit.cfg b/utils/lit/lit/ExampleTests/lit.cfg index 20ee37d..2629918 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 0000000..e3339ff --- /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/ExampleTests/xfail-feature.c b/utils/lit/lit/ExampleTests/xfail-feature.c new file mode 100644 index 0000000..3444bf8 --- /dev/null +++ b/utils/lit/lit/ExampleTests/xfail-feature.c @@ -0,0 +1,4 @@ +// This test should XPASS. + +// RUN: true +// XFAIL: some-feature-name diff --git a/utils/lit/lit/LitConfig.py b/utils/lit/lit/LitConfig.py index c71c0cc..0a359a3 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/TestRunner.py b/utils/lit/lit/TestRunner.py index 71882b7..0c1911e 100644 --- a/utils/lit/lit/TestRunner.py +++ b/utils/lit/lit/TestRunner.py @@ -370,27 +370,27 @@ def executeScript(test, litConfig, tmpBase, commands, cwd): return executeCommand(command, cwd=cwd, env=test.config.environment) -def isExpectedFail(xfails, xtargets, target_triple): - # Check if any xfail matches this target. +def isExpectedFail(test, xfails): + # Check if any of the xfails match an available feature or the target. for item in xfails: - if item == '*' or item in target_triple: - break - else: - return False + # If this is the wildcard, it always fails. + if item == '*': + return True - # If so, see if it is expected to pass on this target. - # - # FIXME: Rename XTARGET to something that makes sense, like XPASS. - for item in xtargets: - if item == '*' or item in target_triple: - return False + # If this is an exact match for one of the features, it fails. + if item in test.config.available_features: + return True + + # If this is a part of the target triple, it fails. + if item in test.suite.config.target_triple: + return True - return True + return False def parseIntegratedTestScript(test, normalize_slashes=False, extra_substitutions=[]): """parseIntegratedTestScript - Scan an LLVM/Clang style integrated test - script and extract the lines to 'RUN' as well as 'XFAIL' and 'XTARGET' + script and extract the lines to 'RUN' as well as 'XFAIL' and 'REQUIRES' information. The RUN lines also will have variable substitution performed. """ @@ -431,7 +431,6 @@ def parseIntegratedTestScript(test, normalize_slashes=False, # Collect the test lines from the script. script = [] xfails = [] - xtargets = [] requires = [] for ln in open(sourcepath): if 'RUN:' in ln: @@ -450,9 +449,6 @@ def parseIntegratedTestScript(test, normalize_slashes=False, elif 'XFAIL:' in ln: items = ln[ln.index('XFAIL:') + 6:].split(',') xfails.extend([s.strip() for s in items]) - elif 'XTARGET:' in ln: - items = ln[ln.index('XTARGET:') + 8:].split(',') - xtargets.extend([s.strip() for s in items]) elif 'REQUIRES:' in ln: items = ln[ln.index('REQUIRES:') + 9:].split(',') requires.extend([s.strip() for s in items]) @@ -491,7 +487,7 @@ def parseIntegratedTestScript(test, normalize_slashes=False, return (Test.UNSUPPORTED, "Test requires the following features: %s" % msg) - isXFail = isExpectedFail(xfails, xtargets, test.suite.config.target_triple) + isXFail = isExpectedFail(test, xfails) return script,isXFail,tmpBase,execdir def formatTestOutput(status, out, err, exitCode, failDueToStderr, script): diff --git a/utils/lit/lit/TestingConfig.py b/utils/lit/lit/TestingConfig.py index 223120c..a1f79a3 100644 --- a/utils/lit/lit/TestingConfig.py +++ b/utils/lit/lit/TestingConfig.py @@ -16,6 +16,7 @@ class TestingConfig: 'PATH' : os.pathsep.join(litConfig.path + [os.environ.get('PATH','')]), 'SYSTEMROOT' : os.environ.get('SYSTEMROOT',''), + 'TERM' : os.environ.get('TERM',''), 'LLVM_DISABLE_CRASH_REPORT' : '1', } @@ -28,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('vg_leak') + config = TestingConfig(parent, name = '<unnamed>', suffixes = set(), @@ -39,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 diff --git a/utils/lit/lit/Util.py b/utils/lit/lit/Util.py index 226e453..f294809 100644 --- a/utils/lit/lit/Util.py +++ b/utils/lit/lit/Util.py @@ -56,7 +56,7 @@ def which(command, paths = None): paths = os.environ.get('PATH','') # Check for absolute match first. - if os.path.exists(command): + if os.path.isfile(command): return command # Would be nice if Python had a lib function for this. |