Skip to content

Commit

Permalink
gh-121605: Increase timeout in test_pyrepl.run_repl (#121606)
Browse files Browse the repository at this point in the history
We also need to close the `slave_fd` earlier so that reading from
`master_fd` won't block forever when the subprocess finishes.
  • Loading branch information
colesbury authored Jul 13, 2024
1 parent 0a26aa5 commit abc3aee
Showing 1 changed file with 8 additions and 5 deletions.
13 changes: 8 additions & 5 deletions Lib/test/test_pyrepl/test_pyrepl.py
Original file line number Diff line number Diff line change
Expand Up @@ -981,20 +981,23 @@ def run_repl(self, repl_input: str | list[str], env: dict | None = None) -> tupl
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:
Expand Down

0 comments on commit abc3aee

Please sign in to comment.