Fix a stack trace caused by environment variables in test setups.

An example trace:

[snip]
>   File "/usr/lib/python3.6/concurrent/futures/thread.py", line 55, in run
>     result = self.fn(*self.args, **self.kwargs)
>   File "/home/trhd/Projects/meson/mesonbuild/mtest.py", line 221, in run_single_test
>     child_env.update(self.options.global_env.get_env(child_env))
> AttributeError: 'dict' object has no attribute 'get_env'
0.42
Hemmo Nieminen 7 years ago committed by Nirbheek Chauhan
parent a6ad07f54a
commit fa97463434
  1. 5
      mesonbuild/interpreter.py

@ -2283,7 +2283,7 @@ class Interpreter(InterpreterBase):
else: else:
if not isinstance(envlist, list): if not isinstance(envlist, list):
envlist = [envlist] envlist = [envlist]
env = {} env = EnvironmentVariablesHolder()
for e in envlist: for e in envlist:
if '=' not in e: if '=' not in e:
raise InterpreterException('Env var definition must be of type key=val.') raise InterpreterException('Env var definition must be of type key=val.')
@ -2292,7 +2292,8 @@ class Interpreter(InterpreterBase):
val = val.strip() val = val.strip()
if ' ' in k: if ' ' in k:
raise InterpreterException('Env var key must not have spaces in it.') 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 return env
def add_test(self, node, args, kwargs, is_base_test): def add_test(self, node, args, kwargs, is_base_test):

Loading…
Cancel
Save