bpo-30258: Fix handling of child error in regrtest (#1477)

Don't stop the worker thread if a child failed.
This commit is contained in:
Victor Stinner 2017-05-05 10:28:35 +02:00 committed by GitHub
parent 03b278895f
commit 228da42961
1 changed files with 9 additions and 9 deletions

View File

@ -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))