mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-24 12:19:53 +00:00
[lit] Hack lit to allow a test suite to request that it is run "early".
This lets us for example start running the unit test suite early. For 'check-llvm' on my machine, this drops the tim e from 44s to 32s!!!!! It's pretty ugly. I barely know how to write Python, so feel free to just tell me how I should write it instead. =D Thanks to Filipe and others for help. Differential Revision: http://reviews.llvm.org/D18089 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@263329 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
409f59e332
commit
cdb6339f8b
@ -12,6 +12,9 @@ config.name = 'LLVM-Unit'
|
|||||||
# suffixes: A list of file extensions to treat as test files.
|
# suffixes: A list of file extensions to treat as test files.
|
||||||
config.suffixes = []
|
config.suffixes = []
|
||||||
|
|
||||||
|
# is_early; Request to run this suite early.
|
||||||
|
config.is_early = True
|
||||||
|
|
||||||
# test_source_root: The root path where tests are located.
|
# test_source_root: The root path where tests are located.
|
||||||
# test_exec_root: The root path where tests should be run.
|
# test_exec_root: The root path where tests should be run.
|
||||||
llvm_obj_root = getattr(config, 'llvm_obj_root', None)
|
llvm_obj_root = getattr(config, 'llvm_obj_root', None)
|
||||||
|
@ -235,6 +235,15 @@ class Test:
|
|||||||
|
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def isEarlyTest(self):
|
||||||
|
"""
|
||||||
|
isEarlyTest() -> bool
|
||||||
|
|
||||||
|
Check whether this test should be executed early in a particular run.
|
||||||
|
This can be used for test suites with long running tests to maximize
|
||||||
|
parallelism or where it is desirable to surface their failures early.
|
||||||
|
"""
|
||||||
|
return self.suite.config.is_early
|
||||||
|
|
||||||
def getJUnitXML(self):
|
def getJUnitXML(self):
|
||||||
test_name = self.path_in_suite[-1]
|
test_name = self.path_in_suite[-1]
|
||||||
|
@ -118,7 +118,8 @@ class TestingConfig:
|
|||||||
def __init__(self, parent, name, suffixes, test_format,
|
def __init__(self, parent, name, suffixes, test_format,
|
||||||
environment, substitutions, unsupported,
|
environment, substitutions, unsupported,
|
||||||
test_exec_root, test_source_root, excludes,
|
test_exec_root, test_source_root, excludes,
|
||||||
available_features, pipefail, limit_to_features = []):
|
available_features, pipefail, limit_to_features = [],
|
||||||
|
is_early = False):
|
||||||
self.parent = parent
|
self.parent = parent
|
||||||
self.name = str(name)
|
self.name = str(name)
|
||||||
self.suffixes = set(suffixes)
|
self.suffixes = set(suffixes)
|
||||||
@ -135,6 +136,8 @@ class TestingConfig:
|
|||||||
# require one of the features in this list if this list is non-empty.
|
# 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.
|
# Configurations can set this list to restrict the set of tests to run.
|
||||||
self.limit_to_features = set(limit_to_features)
|
self.limit_to_features = set(limit_to_features)
|
||||||
|
# Whether the suite should be tested early in a given run.
|
||||||
|
self.is_early = bool(is_early)
|
||||||
|
|
||||||
def finish(self, litConfig):
|
def finish(self, litConfig):
|
||||||
"""finish() - Finish this config object, after loading is complete."""
|
"""finish() - Finish this config object, after loading is complete."""
|
||||||
|
@ -367,7 +367,7 @@ def main(builtinParameters = {}):
|
|||||||
elif opts.incremental:
|
elif opts.incremental:
|
||||||
sort_by_incremental_cache(run)
|
sort_by_incremental_cache(run)
|
||||||
else:
|
else:
|
||||||
run.tests.sort(key = lambda result_test: result_test.getFullName())
|
run.tests.sort(key = lambda t: (not t.isEarlyTest(), t.getFullName()))
|
||||||
|
|
||||||
# Finally limit the number of tests, if desired.
|
# Finally limit the number of tests, if desired.
|
||||||
if opts.maxTests is not None:
|
if opts.maxTests is not None:
|
||||||
|
Loading…
Reference in New Issue
Block a user