aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2017-09-06 23:13:55 +0300
committerGitHub <noreply@github.com>2017-09-06 23:13:55 +0300
commit9361666bd832132346b3a1195d86ad479a9a17b5 (patch)
tree254f5aec05523bfec6a16ebc3c72b38f1201687d
parent2cabcb39c9f8ebc8c525a5168df7f036c7cb5ef7 (diff)
parent64950bd318787648c6753a1290c52f627c0e45a3 (diff)
downloadmeson-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.py5
-rwxr-xr-xrun_unittests.py2
-rw-r--r--test cases/unit/2 testsetups/meson.build2
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)