diff options
author | Hemmo Nieminen <hemmo.nieminen@iki.fi> | 2017-09-10 10:15:50 +0300 |
---|---|---|
committer | Hemmo Nieminen <hemmo.nieminen@iki.fi> | 2018-02-25 21:44:59 +0200 |
commit | abcaf7c222c9e74774f7f5396e16cac40774c236 (patch) | |
tree | 74ce5abe1455bf34134a886c6940a8c90b35a282 /mesonbuild/interpreter.py | |
parent | ec286d497085a297bac12514ef2ddeb730ebd9bc (diff) | |
download | meson-abcaf7c222c9e74774f7f5396e16cac40774c236.zip meson-abcaf7c222c9e74774f7f5396e16cac40774c236.tar.gz meson-abcaf7c222c9e74774f7f5396e16cac40774c236.tar.bz2 |
Namespace test setups.
Use $project_name:$test_setup namespace scheme for test setups. This
allows one to choose from which (sub)project a test setup is taken from
should there be several sharing the same name. Defaults to the main
project. E.g. "meson test --setup subproj:valgrind".
Diffstat (limited to 'mesonbuild/interpreter.py')
-rw-r--r-- | mesonbuild/interpreter.py | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index c937a5a..0ef1587 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -2892,8 +2892,10 @@ different subdirectory. if len(args) != 1: raise InterpreterException('Add_test_setup needs one argument for the setup name.') setup_name = args[0] - if re.fullmatch('[_a-zA-Z][_0-9a-zA-Z]*', setup_name) is None: + if re.fullmatch('([_a-zA-Z][_0-9a-zA-Z]*:)?[_a-zA-Z][_0-9a-zA-Z]*', setup_name) is None: raise InterpreterException('Setup name may only contain alphanumeric characters.') + if ":" not in setup_name: + setup_name = (self.subproject if self.subproject else self.build.project_name) + ":" + setup_name try: inp = extract_as_list(kwargs, 'exe_wrapper') exe_wrapper = [] @@ -2917,14 +2919,10 @@ different subdirectory. if not isinstance(timeout_multiplier, int): raise InterpreterException('Timeout multiplier must be a number.') env = self.unpack_env_kwarg(kwargs) - setupobj = build.TestSetup(exe_wrapper=exe_wrapper, - gdb=gdb, - timeout_multiplier=timeout_multiplier, - env=env) - if self.subproject == '': - # Dunno what we should do with subprojects really. Let's start simple - # and just use the master project ones. - self.build.test_setups[setup_name] = setupobj + self.build.test_setups[setup_name] = build.TestSetup(exe_wrapper=exe_wrapper, + gdb=gdb, + timeout_multiplier=timeout_multiplier, + env=env) @permittedKwargs(permitted_kwargs['add_global_arguments']) @stringArgs |