diff --git a/Lib/test/support/script_helper.py b/Lib/test/support/script_helper.py index c45d010a718..80889b17f3f 100644 --- a/Lib/test/support/script_helper.py +++ b/Lib/test/support/script_helper.py @@ -83,16 +83,16 @@ def run_python_until_end(*args, **env_vars): env = {} env.update(env_vars) cmd_line.extend(args) - p = subprocess.Popen(cmd_line, stdin=subprocess.PIPE, + proc = subprocess.Popen(cmd_line, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=env) - try: - out, err = p.communicate() - finally: - subprocess._cleanup() - p.stdout.close() - p.stderr.close() - rc = p.returncode + with proc: + try: + out, err = proc.communicate() + finally: + proc.kill() + subprocess._cleanup() + rc = proc.returncode err = strip_python_stderr(err) return _PythonRunResult(rc, out, err), cmd_line