lit: Allow configurations to restrict the set of tests to run

By setting limit_to_features to a non empty list of features a configuration can
restrict the set of tests to run to only include tests that require a feature in
this list.

rdar://21082253

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238766 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Arnold Schwaighofer 2015-06-01 17:50:03 +00:00
parent 6f9474c1e1
commit 5a0272c759
2 changed files with 14 additions and 1 deletions

View File

@ -513,6 +513,15 @@ def parseIntegratedTestScript(test, normalize_slashes=False,
return lit.Test.Result(Test.UNSUPPORTED,
"Test is unsupported with the following features: %s" % msg)
if test.config.limit_to_features:
# Check that we have one of the limit_to_features features in requires.
limit_to_features_tests = [f for f in test.config.limit_to_features
if f in requires]
if not limit_to_features_tests:
msg = ', '.join(test.config.limit_to_features)
return lit.Test.Result(Test.UNSUPPORTED,
"Test requires one of the limit_to_features features %s" % msg)
return script,tmpBase,execdir
def _runShTest(test, litConfig, useExternalSh,

View File

@ -118,7 +118,7 @@ class TestingConfig:
def __init__(self, parent, name, suffixes, test_format,
environment, substitutions, unsupported,
test_exec_root, test_source_root, excludes,
available_features, pipefail):
available_features, pipefail, limit_to_features = []):
self.parent = parent
self.name = str(name)
self.suffixes = set(suffixes)
@ -131,6 +131,10 @@ class TestingConfig:
self.excludes = set(excludes)
self.available_features = set(available_features)
self.pipefail = pipefail
# This list is used by TestRunner.py to restrict running only tests that
# require one of the features in this list if this list is non-empty.
# Configurations can set this list to restrict the set of tests to run.
self.limit_to_features = set(limit_to_features)
def finish(self, litConfig):
"""finish() - Finish this config object, after loading is complete."""