diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2017-01-02 18:31:58 +0200 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2017-01-02 23:52:50 +0200 |
commit | b3d51abff20b36e8d0604eaf9e482c509e54f311 (patch) | |
tree | d68930595821188bb57cc67775205d39d63606ef | |
parent | 74f15263b6a9d7fe1f717235a7177e7e4a681d3d (diff) | |
download | meson-b3d51abff20b36e8d0604eaf9e482c509e54f311.zip meson-b3d51abff20b36e8d0604eaf9e482c509e54f311.tar.gz meson-b3d51abff20b36e8d0604eaf9e482c509e54f311.tar.bz2 |
Can put external programs to test suite exe wrappers directly.
-rw-r--r-- | mesonbuild/interpreter.py | 16 | ||||
-rwxr-xr-x | mesontest.py | 2 | ||||
-rw-r--r-- | test cases/unit/2 testsetups/meson.build | 4 |
3 files changed, 18 insertions, 4 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index fb1ff20..eda6f07 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -2150,7 +2150,21 @@ requirements use the version keyword argument instead.''') if re.fullmatch('[_a-zA-Z][_0-9a-zA-Z]*', setup_name) is None: raise InterpreterException('Setup name may only contain alphanumeric characters.') try: - exe_wrapper = mesonlib.stringlistify(kwargs['exe_wrapper']) + inp = kwargs.get('exe_wrapper', []) + if not isinstance(inp, list): + inp = [inp] + exe_wrapper = [] + for i in inp: + if hasattr(i, 'held_object'): + i = i.held_object + if isinstance(i, str): + exe_wrapper.append(i) + elif isinstance(i, dependencies.ExternalProgram): + if not i.found(): + raise InterpreterException('Tried to use non-found external executable.') + exe_wrapper += i.get_command() + else: + raise InterpreterException('Exe wrapper can only contain strings or external binaries.') except KeyError: exe_wrapper = None gdb = kwargs.get('gdb', False) diff --git a/mesontest.py b/mesontest.py index 6a8291c..c7c60c0 100755 --- a/mesontest.py +++ b/mesontest.py @@ -336,7 +336,7 @@ class TestHarness: else: wrap = self.options.wrapper assert(isinstance(wrap, list)) - namebase = wrap[0] + namebase = os.path.split(wrap[0])[1] logfilename = logfile_base + '-' + namebase.replace(' ', '_') + '.txt' jsonlogfilename = logfile_base + '-' + namebase.replace(' ', '_') + '.json' tests = self.get_tests() diff --git a/test cases/unit/2 testsetups/meson.build b/test cases/unit/2 testsetups/meson.build index 23682a7..a65548e 100644 --- a/test cases/unit/2 testsetups/meson.build +++ b/test cases/unit/2 testsetups/meson.build @@ -1,13 +1,13 @@ project('testsetups', 'c') -vg = find_program('valgrind', required : false) +vg = find_program('valgrind') # This is only set when running under Valgrind test setup. env = environment() env.set('TEST_ENV', '1') add_test_setup('valgrind', - exe_wrapper : ['valgrind', '--error-exitcode=1', '--leak-check=full'], + exe_wrapper : [vg, '--error-exitcode=1', '--leak-check=full'], timeout_multiplier : 100, env : env) |