aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild
diff options
context:
space:
mode:
authorStian Selnes <stian@pexip.com>2018-11-12 10:33:49 +0100
committerNirbheek Chauhan <nirbheek.chauhan@gmail.com>2018-11-12 16:23:59 +0530
commit0821462ce382541e120d8d6cfc1a3224a492b275 (patch)
tree67ca584e5f619ab6beabdc67c930f83ceb7df658 /mesonbuild
parent50b2ef7354b503ae62abd504cdce938c390b358f (diff)
downloadmeson-0821462ce382541e120d8d6cfc1a3224a492b275.zip
meson-0821462ce382541e120d8d6cfc1a3224a492b275.tar.gz
meson-0821462ce382541e120d8d6cfc1a3224a492b275.tar.bz2
Add kwarg is_default to add_test_setup()
is_default may be used to set the name of the test setup that will be used by default whenever the option --setup is not given. Fixes #4430
Diffstat (limited to 'mesonbuild')
-rw-r--r--mesonbuild/build.py1
-rw-r--r--mesonbuild/interpreter.py8
-rw-r--r--mesonbuild/mtest.py2
3 files changed, 11 insertions, 0 deletions
diff --git a/mesonbuild/build.py b/mesonbuild/build.py
index 03a1f64..c0f4564 100644
--- a/mesonbuild/build.py
+++ b/mesonbuild/build.py
@@ -135,6 +135,7 @@ class Build:
self.dep_manifest = {}
self.cross_stdlibs = {}
self.test_setups = {}
+ self.test_setup_default_name = None
self.find_overrides = {}
self.searched_programs = set() # The list of all programs that have been searched for.
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
index 86b761e..df74cc0 100644
--- a/mesonbuild/interpreter.py
+++ b/mesonbuild/interpreter.py
@@ -3733,6 +3733,14 @@ different subdirectory.
timeout_multiplier = kwargs.get('timeout_multiplier', 1)
if not isinstance(timeout_multiplier, int):
raise InterpreterException('Timeout multiplier must be a number.')
+ is_default = kwargs.get('is_default', False)
+ if not isinstance(is_default, bool):
+ raise InterpreterException('is_default option must be a boolean')
+ if is_default:
+ if self.build.test_setup_default_name is not None:
+ raise InterpreterException('\'%s\' is already set as default. '
+ 'is_default can be set to true only once' % self.build.test_setup_default_name)
+ self.build.test_setup_default_name = setup_name
env = self.unpack_env_kwarg(kwargs)
self.build.test_setups[setup_name] = build.TestSetup(exe_wrapper=exe_wrapper,
gdb=gdb,
diff --git a/mesonbuild/mtest.py b/mesonbuild/mtest.py
index 883e556..a5a3626 100644
--- a/mesonbuild/mtest.py
+++ b/mesonbuild/mtest.py
@@ -450,6 +450,8 @@ class TestHarness:
def get_test_runner(self, test):
options = deepcopy(self.options)
+ if not options.setup:
+ options.setup = self.build_data.test_setup_default_name
if options.setup:
env = self.merge_suite_options(options, test)
else: