mirror of
				https://github.com/python/cpython.git
				synced 2025-10-30 21:21:22 +00:00 
			
		
		
		
	[3.13] gh-121605: Increase timeout in test_pyrepl.run_repl (GH-121606) (#121702)
We also need to close the `slave_fd` earlier so that reading from
`master_fd` won't block forever when the subprocess finishes.
(cherry picked from commit abc3aeebdb)
Co-authored-by: Sam Gross <colesbury@gmail.com>
			
			
This commit is contained in:
		
							parent
							
								
									4af9c05e78
								
							
						
					
					
						commit
						14c5bffcc5
					
				
					 1 changed files with 8 additions and 5 deletions
				
			
		|  | @ -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: | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Miss Islington (bot)
						Miss Islington (bot)