diff options
author | Victor Stinner <vstinner@python.org> | 2023-09-11 19:33:42 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-11 19:33:42 +0200 |
commit | de5f8f7d13c0bbc723eaea83284dc78b37be54b4 (patch) | |
tree | 1055e0399f756e089e16418a195947a43f39fdca /Lib/test/libregrtest/single.py | |
parent | baa6dc8e388e71b2a00347143ecefb2ad3a8e53b (diff) | |
download | cpython-de5f8f7d13c0bbc723eaea83284dc78b37be54b4.tar.gz cpython-de5f8f7d13c0bbc723eaea83284dc78b37be54b4.zip |
gh-109276: libregrtest: use separated file for JSON (#109277)
libregrtest now uses a separated file descriptor to write test result
as JSON. Previously, if a test wrote debug messages late around the
JSON, the main test process failed to parse JSON.
Rename TestResult.write_json() to TestResult.write_json_into().
worker_process() no longer writes an empty line at the end. There is
no need to separate test process output from the JSON output anymore,
since JSON is now written into a separated file descriptor.
create_worker_process() now always spawn the process with
close_fds=True.
Diffstat (limited to 'Lib/test/libregrtest/single.py')
-rw-r--r-- | Lib/test/libregrtest/single.py | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/Lib/test/libregrtest/single.py b/Lib/test/libregrtest/single.py index 635b4f93702..c26e542cf15 100644 --- a/Lib/test/libregrtest/single.py +++ b/Lib/test/libregrtest/single.py @@ -271,5 +271,9 @@ def run_single_test(test_name: TestName, runtests: RunTests) -> TestResult: print(f"test {test_name} crashed -- {msg}", file=sys.stderr, flush=True) result.state = State.UNCAUGHT_EXC + + sys.stdout.flush() + sys.stderr.flush() + result.duration = time.perf_counter() - start_time return result |