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