diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2013-10-18 22:04:07 +0300 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2013-10-18 22:04:07 +0300 |
commit | 11cfb3ce22dfbe189969575832d51a925abc8fee (patch) | |
tree | 6ae67dd7b4ff9e26d9ff49d03bb329b978a99670 /interpreter.py | |
parent | ae06ca2afc58901d9d72f13f662701cf12281b51 (diff) | |
download | meson-11cfb3ce22dfbe189969575832d51a925abc8fee.zip meson-11cfb3ce22dfbe189969575832d51a925abc8fee.tar.gz meson-11cfb3ce22dfbe189969575832d51a925abc8fee.tar.bz2 |
Can set test cmd arguments and environment variables.
Diffstat (limited to 'interpreter.py')
-rw-r--r-- | interpreter.py | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/interpreter.py b/interpreter.py index fe1efd5..76d9f4a 100644 --- a/interpreter.py +++ b/interpreter.py @@ -338,11 +338,13 @@ class SharedLibraryHolder(BuildTargetHolder): super().__init__(build.SharedLibrary, name, subdir, is_cross, sources, environment, kwargs) class Test(InterpreterObject): - def __init__(self, name, exe, is_parallel): + def __init__(self, name, exe, is_parallel, cmd_args, env): InterpreterObject.__init__(self) self.name = name self.exe = exe self.is_parallel = is_parallel + self.cmd_args = cmd_args + self.env = env def get_exe(self): return self.exe @@ -835,7 +837,26 @@ class Interpreter(): par = kwargs.get('is_parallel', True) if not isinstance(par, bool): raise InterpreterException('Keyword argument is_parallel must be a boolean.') - t = Test(args[0], args[1].target, par) + cmd_args = kwargs.get('args', []) + if not isinstance(cmd_args, list): + cmd_args = [cmd_args] + for i in cmd_args: + if not isinstance(i, str): + raise InterpreterException('Command line arguments must be strings') + envlist = kwargs.get('env', []) + if not isinstance(envlist, list): + envlist = [envlist] + env = {} + for e in envlist: + if '=' not in e: + raise InterpreterException('Env var definition must be of type key=val.') + (k, val) = e.split('=', 1) + k = k.strip() + val = val.strip() + if ' ' in k: + raise InterpreterException('Env var key must not have spaces in it.') + env[k] = val + t = Test(args[0], args[1].target, par, cmd_args, env) self.build.tests.append(t) mlog.debug('Adding test "', mlog.bold(args[0]), '".', sep='') |