diff options
author | Sam Gross <colesbury@gmail.com> | 2024-07-13 13:54:28 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-13 13:54:28 (GMT) |
commit | abc3aeebdbae560476f2f8c0312e9a4bf0dbfd33 (patch) | |
tree | ef1ae1981d420ca6f3c0cb25d35e0f125f88496f /Lib/test/test_pyrepl/test_pyrepl.py | |
parent | 0a26aa5007cb32610366c31fbac846b5fe2f4f90 (diff) | |
download | cpython-abc3aeebdbae560476f2f8c0312e9a4bf0dbfd33.zip cpython-abc3aeebdbae560476f2f8c0312e9a4bf0dbfd33.tar.gz cpython-abc3aeebdbae560476f2f8c0312e9a4bf0dbfd33.tar.bz2 |
gh-121605: Increase timeout in test_pyrepl.run_repl (#121606)
We also need to close the `slave_fd` earlier so that reading from
`master_fd` won't block forever when the subprocess finishes.
Diffstat (limited to 'Lib/test/test_pyrepl/test_pyrepl.py')
-rw-r--r-- | Lib/test/test_pyrepl/test_pyrepl.py | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/Lib/test/test_pyrepl/test_pyrepl.py b/Lib/test/test_pyrepl/test_pyrepl.py index 4320610..8fff372 100644 --- a/Lib/test/test_pyrepl/test_pyrepl.py +++ b/Lib/test/test_pyrepl/test_pyrepl.py @@ -981,20 +981,23 @@ class TestMain(TestCase): text=True, close_fds=True, env=env if env else os.environ, - ) + ) + os.close(slave_fd) if isinstance(repl_input, list): repl_input = "\n".join(repl_input) + "\n" os.write(master_fd, repl_input.encode("utf-8")) output = [] - while select.select([master_fd], [], [], 0.5)[0]: - data = os.read(master_fd, 1024).decode("utf-8") - if not data: + while select.select([master_fd], [], [], SHORT_TIMEOUT)[0]: + try: + data = os.read(master_fd, 1024).decode("utf-8") + if not data: + break + except OSError: break output.append(data) os.close(master_fd) - os.close(slave_fd) try: exit_code = process.wait(timeout=SHORT_TIMEOUT) except subprocess.TimeoutExpired: |