diff options
Diffstat (limited to 'run_tests.py')
-rwxr-xr-x | run_tests.py | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/run_tests.py b/run_tests.py index 051b91e..38c65c5 100755 --- a/run_tests.py +++ b/run_tests.py @@ -222,28 +222,33 @@ def clear_meson_configure_class_caches(): mesonbuild.dependencies.PkgConfigDependency.pkgbin_cache = {} mesonbuild.dependencies.PkgConfigDependency.class_pkgbin = mesonlib.PerMachine(None, None) -def run_configure_inprocess(commandlist): +def run_configure_inprocess(commandlist, env=None): old_stdout = sys.stdout sys.stdout = mystdout = StringIO() old_stderr = sys.stderr sys.stderr = mystderr = StringIO() + old_environ = os.environ.copy() + if env is not None: + os.environ.update(env) try: returncode = mesonmain.run(commandlist, get_meson_script()) finally: sys.stdout = old_stdout sys.stderr = old_stderr clear_meson_configure_class_caches() + os.environ.clear() + os.environ.update(old_environ) return returncode, mystdout.getvalue(), mystderr.getvalue() -def run_configure_external(full_command): - pc, o, e = mesonlib.Popen_safe(full_command) +def run_configure_external(full_command, env=None): + pc, o, e = mesonlib.Popen_safe(full_command, env=env) return pc.returncode, o, e -def run_configure(commandlist): +def run_configure(commandlist, env=None): global meson_exe if meson_exe: - return run_configure_external(meson_exe + commandlist) - return run_configure_inprocess(commandlist) + return run_configure_external(meson_exe + commandlist, env=env) + return run_configure_inprocess(commandlist, env=env) def print_system_info(): print(mlog.bold('System information.').get_text(mlog.colorize_console)) |