diff options
author | Xavier Claessens <xavier.claessens@collabora.com> | 2021-07-21 09:28:25 -0400 |
---|---|---|
committer | Nirbheek Chauhan <nirbheek@centricular.com> | 2021-08-10 16:06:45 +0530 |
commit | 252246cfc21d7cbe0c99faed059bd2a8311e65ae (patch) | |
tree | e5a2208078d10fbbda9c28a04412fc40a6ece566 | |
parent | b426d7d39c9db4dc8125b7d2ef2f1213503d136a (diff) | |
download | meson-252246cfc21d7cbe0c99faed059bd2a8311e65ae.zip meson-252246cfc21d7cbe0c99faed059bd2a8311e65ae.tar.gz meson-252246cfc21d7cbe0c99faed059bd2a8311e65ae.tar.bz2 |
modules: Add API to add test
This fix kwargs not going through typed_kwargs() decorator that sets
defaults.
Fixes: #9009
-rw-r--r-- | mesonbuild/modules/__init__.py | 13 | ||||
-rw-r--r-- | mesonbuild/modules/gnome.py | 6 |
2 files changed, 14 insertions, 5 deletions
diff --git a/mesonbuild/modules/__init__.py b/mesonbuild/modules/__init__.py index 19de1bd..12bb73a 100644 --- a/mesonbuild/modules/__init__.py +++ b/mesonbuild/modules/__init__.py @@ -18,7 +18,7 @@ import os import typing as T -from .. import build +from .. import build, mesonlib from ..mesonlib import relpath, HoldableObject from ..interpreterbase.decorators import noKwargs, noPosargs @@ -92,6 +92,17 @@ class ModuleState: wanted: T.Optional[str] = None) -> 'ExternalProgram': return self._interpreter.find_program_impl(prog, required=required, version_func=version_func, wanted=wanted) + def test(self, args: T.Tuple[str, T.Union[build.Executable, build.Jar, 'ExternalProgram', mesonlib.File]], + workdir: T.Optional[str] = None, + env: T.Union[T.List[str], T.Dict[str, str], str] = None, + depends: T.List[T.Union[build.CustomTarget, build.BuildTarget]] = None) -> None: + kwargs = {'workdir': workdir, + 'env': env, + 'depends': depends, + } + # TODO: Use interpreter internal API, but we need to go through @typed_kwargs + self._interpreter.func_test(self.node, args, kwargs) + class ModuleObject(HoldableObject): """Base class for all objects returned by modules diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py index 3cc8ebd..b138f55 100644 --- a/mesonbuild/modules/gnome.py +++ b/mesonbuild/modules/gnome.py @@ -1136,10 +1136,8 @@ class GnomeModule(ExtensionModule): check_env = ['DOC_MODULE=' + modulename, 'DOC_MAIN_SGML_FILE=' + main_file] check_args = [targetname + '-check', check_cmd] - check_kwargs = {'env': check_env, - 'workdir': os.path.join(state.environment.get_build_dir(), state.subdir), - 'depends': custom_target} - self.interpreter.add_test(state.current_node, check_args, check_kwargs, True) + check_workdir = os.path.join(state.environment.get_build_dir(), state.subdir) + state.test(check_args, env=check_env, workdir=check_workdir, depends=custom_target) res = [custom_target, alias_target] if kwargs.get('install', True): res.append(state.backend.get_executable_serialisation(command + args)) |