From 228da42961ac9bf2990e6c191ecc9b762ead617c Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Fri, 5 May 2017 10:28:35 +0200 Subject: [PATCH] bpo-30258: Fix handling of child error in regrtest (#1477) Don't stop the worker thread if a child failed. --- Lib/test/regrtest.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py index 413d7f90649..9874dded97a 100755 --- a/Lib/test/regrtest.py +++ b/Lib/test/regrtest.py @@ -555,16 +555,16 @@ def main(tests=None, testdir=None, verbose=0, quiet=False, # comes from the shutdown of the interpreter in the subcommand. stderr = debug_output_pat.sub("", stderr) - if retcode != 0: - result = (CHILD_ERROR, "Exit code %s" % retcode) - output.put((test, stdout.rstrip(), stderr.rstrip(), - result)) + if retcode == 0: + stdout, _, result = stdout.strip().rpartition("\n") + if not result: + output.put((None, None, None, None)) + return + + result = json.loads(result) + else: + result = (CHILD_ERROR, "Exit code %s" % retcode) - stdout, _, result = stdout.strip().rpartition("\n") - if not result: - output.put((None, None, None, None)) - return - result = json.loads(result) output.put((test, stdout.rstrip(), stderr.rstrip(), result)) except BaseException: output.put((None, None, None, None))