Chromium Code Reviews| Index: tools/run-tests.py |
| diff --git a/tools/run-tests.py b/tools/run-tests.py |
| index e7c3f7ffd1796296bc3c7a30bb25fb52f212739a..78c1901b89b75acedb1f5842a7d3d9773e63d30a 100755 |
| --- a/tools/run-tests.py |
| +++ b/tools/run-tests.py |
| @@ -28,6 +28,7 @@ |
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| +from collections import OrderedDict |
| import itertools |
| import multiprocessing |
| import optparse |
| @@ -54,6 +55,31 @@ DEFAULT_TESTS = ["mjsunit", "fuzz-natives", "base-unittests", |
| "cctest", "compiler-unittests", "heap-unittests", |
| "libplatform-unittests", "runtime-unittests", |
| "message", "preparser"] |
| + |
| +# Map of test name synonyms to lists of test suites. Should be ordered by |
| +# expected runtimes (suites with slow test cases first). These groups are |
| +# invoked in seperate steps on the bots. |
| +TEST_MAP = { |
| + "default": [ |
| + "mjsunit", |
| + "fuzz-natives", |
| + "cctest", |
| + "message", |
| + "preparser", |
| + ], |
| + "optimize_for_size": [ |
| + "mjsunit", |
| + "cctest", |
| + "webkit", |
| + ], |
| + "unittests": [ |
| + "heap-unittests", |
| + "libplatform-unittests", |
|
Benedikt Meurer
2014/09/01 10:29:27
Should be: compiler-unittests, heap-unittests, bas
|
| + "compiler-unittests", |
| + "base-unittests", |
| + ], |
| +} |
| + |
| TIMEOUT_DEFAULT = 60 |
| TIMEOUT_SCALEFACTOR = {"debug" : 4, |
| "release" : 1 } |
| @@ -379,14 +405,23 @@ def Main(): |
| suite_paths = utils.GetSuitePaths(join(workspace, "test")) |
| + # Expand arguments with grouped tests. The args should reflect the list of |
| + # suites as otherwise filters would break. |
| + def ExpandTestGroups(name): |
| + if name in TEST_MAP: |
| + return [suite for suite in TEST_MAP[arg]] |
| + else: |
| + return [name] |
| + args = reduce(lambda x, y: x + y, |
| + [ExpandTestGroups(arg) for arg in args], |
| + []) |
| + |
| if len(args) == 0: |
| suite_paths = [ s for s in DEFAULT_TESTS if s in suite_paths ] |
| else: |
| - args_suites = set() |
| + args_suites = OrderedDict() # Used as set |
| for arg in args: |
| - suite = arg.split(os.path.sep)[0] |
| - if not suite in args_suites: |
| - args_suites.add(suite) |
| + args_suites[arg.split(os.path.sep)[0]] = True |
| suite_paths = [ s for s in args_suites if s in suite_paths ] |
| suites = [] |