diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2017-09-06 23:13:55 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-09-06 23:13:55 +0300 |
commit | 9361666bd832132346b3a1195d86ad479a9a17b5 (patch) | |
tree | 254f5aec05523bfec6a16ebc3c72b38f1201687d | |
parent | 2cabcb39c9f8ebc8c525a5168df7f036c7cb5ef7 (diff) | |
parent | 64950bd318787648c6753a1290c52f627c0e45a3 (diff) | |
download | meson-9361666bd832132346b3a1195d86ad479a9a17b5.zip meson-9361666bd832132346b3a1195d86ad479a9a17b5.tar.gz meson-9361666bd832132346b3a1195d86ad479a9a17b5.tar.bz2 |
Merge pull request #2236 from trhd/env
Fix a stack trace caused by environment variables in test setups.
-rw-r--r-- | mesonbuild/interpreter.py | 5 | ||||
-rwxr-xr-x | run_unittests.py | 2 | ||||
-rw-r--r-- | test cases/unit/2 testsetups/meson.build | 2 |
3 files changed, 7 insertions, 2 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index d71ce1f..23f5907 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -2335,7 +2335,7 @@ class Interpreter(InterpreterBase): else: if not isinstance(envlist, list): envlist = [envlist] - env = {} + env = EnvironmentVariablesHolder() for e in envlist: if '=' not in e: raise InterpreterException('Env var definition must be of type key=val.') @@ -2344,7 +2344,8 @@ class Interpreter(InterpreterBase): val = val.strip() if ' ' in k: raise InterpreterException('Env var key must not have spaces in it.') - env[k] = val + env.add_var(env.held_object.set, [k, val], kwargs) + env = env.held_object return env def add_test(self, node, args, kwargs, is_base_test): diff --git a/run_unittests.py b/run_unittests.py index c065790..08ec774 100755 --- a/run_unittests.py +++ b/run_unittests.py @@ -813,6 +813,8 @@ class AllPlatformTests(BasePlatformTests): self._run(self.mtest_command + ['--setup=empty']) # Setup with only env works self._run(self.mtest_command + ['--setup=onlyenv']) + self._run(self.mtest_command + ['--setup=onlyenv2']) + self._run(self.mtest_command + ['--setup=onlyenv3']) # Setup with only a timeout works self._run(self.mtest_command + ['--setup=timeout']) diff --git a/test cases/unit/2 testsetups/meson.build b/test cases/unit/2 testsetups/meson.build index 488cf21..58b099d 100644 --- a/test cases/unit/2 testsetups/meson.build +++ b/test cases/unit/2 testsetups/meson.build @@ -16,5 +16,7 @@ test('Test buggy', buggy) add_test_setup('empty') add_test_setup('onlyenv', env : env) +add_test_setup('onlyenv2', env : 'TEST_ENV=1') +add_test_setup('onlyenv3', env : ['TEST_ENV=1']) add_test_setup('wrapper', exe_wrapper : [vg, '--error-exitcode=1']) add_test_setup('timeout', timeout_multiplier : 20) |