aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild
diff options
context:
space:
mode:
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: