diff options
Diffstat (limited to 'mesonbuild/interpreter.py')
-rw-r--r-- | mesonbuild/interpreter.py | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index c20c205..6e04235 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -2593,6 +2593,8 @@ class Interpreter(InterpreterBase): self.process_new_values(v.sources[0]) elif isinstance(v, InstallDir): self.build.install_dirs.append(v) + elif isinstance(v, Test): + self.build.tests.append(v) elif hasattr(v, 'held_object'): pass elif isinstance(v, (int, str, bool, Disabler)): @@ -4120,7 +4122,7 @@ This will become a hard error in the future.''' % kwargs['input'], location=self env = env.held_object return env - def add_test(self, node, args, kwargs, is_base_test): + def make_test(self, node: mparser.BaseNode, args: T.List, kwargs: T.Dict[str, T.Any]): if len(args) != 2: raise InterpreterException('test expects 2 arguments, {} given'.format(len(args))) name = args[0] @@ -4159,8 +4161,8 @@ This will become a hard error in the future.''' % kwargs['input'], location=self if not isinstance(timeout, int): raise InterpreterException('Timeout must be an integer.') protocol = kwargs.get('protocol', 'exitcode') - if protocol not in {'exitcode', 'tap', 'gtest'}: - raise InterpreterException('Protocol must be "exitcode", "tap", or "gtest".') + if protocol not in {'exitcode', 'tap', 'gtest', 'rust'}: + raise InterpreterException('Protocol must be one of "exitcode", "tap", "gtest", or "rust".') suite = [] prj = self.subproject if self.is_subproject() else self.build.project_name for s in mesonlib.stringlistify(kwargs.get('suite', '')): @@ -4174,14 +4176,17 @@ This will become a hard error in the future.''' % kwargs['input'], location=self priority = kwargs.get('priority', 0) if not isinstance(priority, int): raise InterpreterException('Keyword argument priority must be an integer.') - t = Test(name, prj, suite, exe.held_object, depends, par, cmd_args, - env, should_fail, timeout, workdir, protocol, priority) + return Test(name, prj, suite, exe.held_object, depends, par, cmd_args, + env, should_fail, timeout, workdir, protocol, priority) + + def add_test(self, node: mparser.BaseNode, args: T.List, kwargs: T.Dict[str, T.Any], is_base_test: bool): + t = self.make_test(node, args, kwargs) if is_base_test: self.build.tests.append(t) - mlog.debug('Adding test', mlog.bold(name, True)) + mlog.debug('Adding test', mlog.bold(t.name, True)) else: self.build.benchmarks.append(t) - mlog.debug('Adding benchmark', mlog.bold(name, True)) + mlog.debug('Adding benchmark', mlog.bold(t.name, True)) @FeatureNewKwargs('install_headers', '0.47.0', ['install_mode']) @permittedKwargs(permitted_kwargs['install_headers']) |