| Index: tools/run-tests.py
|
| diff --git a/tools/run-tests.py b/tools/run-tests.py
|
| index 794c864fb5398ef11f8680a12b740344041063af..7c61360877dbc3809fb072366aa5d6cd3a97ff24 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
|
| @@ -51,6 +52,31 @@ from testrunner.objects import context
|
|
|
| ARCH_GUESS = utils.DefaultArch()
|
| DEFAULT_TESTS = ["mjsunit", "fuzz-natives", "cctest", "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": [
|
| + "compiler-unittests",
|
| + "heap-unittests",
|
| + "base-unittests",
|
| + "libplatform-unittests",
|
| + ],
|
| +}
|
| +
|
| TIMEOUT_DEFAULT = 60
|
| TIMEOUT_SCALEFACTOR = {"debug" : 4,
|
| "release" : 1 }
|
| @@ -351,14 +377,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 = []
|
|
|