aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/backend
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2019-08-25 04:26:41 +1000
committerJussi Pakkanen <jpakkane@gmail.com>2019-08-24 21:26:41 +0300
commit4ebce2c3f25d98f9ba49d9fcc343ffbe760363af (patch)
tree9620b6f72a4c713e30c90c5c5e5823cd24a98bd3 /mesonbuild/backend
parente3b21de5630e009f130d2e160a6fc125b5f84e31 (diff)
downloadmeson-4ebce2c3f25d98f9ba49d9fcc343ffbe760363af.zip
meson-4ebce2c3f25d98f9ba49d9fcc343ffbe760363af.tar.gz
meson-4ebce2c3f25d98f9ba49d9fcc343ffbe760363af.tar.bz2
Add test priorities to force test start order
Diffstat (limited to 'mesonbuild/backend')
-rw-r--r--mesonbuild/backend/backends.py8
1 files changed, 5 insertions, 3 deletions
diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py
index 512eeed..c0b2666 100644
--- a/mesonbuild/backend/backends.py
+++ b/mesonbuild/backend/backends.py
@@ -86,7 +86,7 @@ class TestSerialisation:
is_parallel: bool, cmd_args: typing.List[str],
env: build.EnvironmentVariables, should_fail: bool,
timeout: typing.Optional[int], workdir: typing.Optional[str],
- extra_paths: typing.List[str], protocol: str):
+ extra_paths: typing.List[str], protocol: str, priority: int):
self.name = name
self.project_name = project
self.suite = suite
@@ -103,6 +103,7 @@ class TestSerialisation:
self.workdir = workdir
self.extra_paths = extra_paths
self.protocol = protocol
+ self.priority = priority
class OptionProxy:
def __init__(self, value):
@@ -728,7 +729,7 @@ class Backend:
def create_test_serialisation(self, tests):
arr = []
- for t in tests:
+ for t in sorted(tests, key=lambda tst: -1 * tst.priority):
exe = t.get_exe()
if isinstance(exe, dependencies.ExternalProgram):
cmd = exe.get_command()
@@ -770,7 +771,8 @@ class Backend:
raise MesonException('Bad object in test command.')
ts = TestSerialisation(t.get_name(), t.project_name, t.suite, cmd, is_cross,
exe_wrapper, t.is_parallel, cmd_args, t.env,
- t.should_fail, t.timeout, t.workdir, extra_paths, t.protocol)
+ t.should_fail, t.timeout, t.workdir,
+ extra_paths, t.protocol, t.priority)
arr.append(ts)
return arr