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,
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)
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."""