mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	Issue #21645: Add debug code to analyze a failure on FreeBSD 9
This commit is contained in:
		
							parent
							
								
									daded80283
								
							
						
					
					
						commit
						24f2a5093f
					
				
					 1 changed files with 33 additions and 17 deletions
				
			
		|  | @ -609,25 +609,41 @@ def test_read_all_from_pipe_reader(self): | |||
|         rfd, wfd = os.pipe() | ||||
|         args = [sys.executable, '-c', code, str(wfd)] | ||||
| 
 | ||||
|         pipe = open(rfd, 'rb', 0) | ||||
|         reader = asyncio.StreamReader(loop=self.loop, limit=1) | ||||
|         protocol = asyncio.StreamReaderProtocol(reader, loop=self.loop) | ||||
|         transport, _ = self.loop.run_until_complete( | ||||
|             self.loop.connect_read_pipe(lambda: protocol, pipe)) | ||||
| 
 | ||||
|         watcher = asyncio.SafeChildWatcher() | ||||
|         watcher.attach_loop(self.loop) | ||||
|         # FIXME: Debug code for issue #21645 | ||||
|         import logging | ||||
|         self.loop.set_debug(True) | ||||
|         logger = logging.getLogger('asyncio') | ||||
|         log_level = logger.level | ||||
|         try: | ||||
|             asyncio.set_child_watcher(watcher) | ||||
|             proc = self.loop.run_until_complete( | ||||
|                 asyncio.create_subprocess_exec(*args, pass_fds={wfd}, loop=self.loop)) | ||||
|             self.loop.run_until_complete(proc.wait()) | ||||
|         finally: | ||||
|             asyncio.set_child_watcher(None) | ||||
|             log_handler = logging.StreamHandler(sys.stderr) | ||||
|             logger.addHandler(log_handler) | ||||
|             logger.setLevel(logging.DEBUG) | ||||
|             # FIXME: Debug code for issue #21645 --- | ||||
| 
 | ||||
|         os.close(wfd) | ||||
|         data = self.loop.run_until_complete(reader.read(-1)) | ||||
|         self.assertEqual(data, b'data') | ||||
|             pipe = open(rfd, 'rb', 0) | ||||
|             reader = asyncio.StreamReader(loop=self.loop, limit=1) | ||||
|             protocol = asyncio.StreamReaderProtocol(reader, loop=self.loop) | ||||
|             transport, _ = self.loop.run_until_complete( | ||||
|                 self.loop.connect_read_pipe(lambda: protocol, pipe)) | ||||
| 
 | ||||
|             watcher = asyncio.SafeChildWatcher() | ||||
|             watcher.attach_loop(self.loop) | ||||
|             try: | ||||
|                 asyncio.set_child_watcher(watcher) | ||||
|                 proc = self.loop.run_until_complete( | ||||
|                     asyncio.create_subprocess_exec(*args, pass_fds={wfd}, loop=self.loop)) | ||||
|                 self.loop.run_until_complete(proc.wait()) | ||||
|             finally: | ||||
|                 asyncio.set_child_watcher(None) | ||||
| 
 | ||||
|             os.close(wfd) | ||||
|             data = self.loop.run_until_complete(reader.read(-1)) | ||||
|             self.assertEqual(data, b'data') | ||||
|         finally: | ||||
|             # FIXME: Debug code for issue #21645 | ||||
|             logger.removeHandler(log_handler) | ||||
|             logger.setLevel(log_level) | ||||
|             # FIXME: Debug code for issue #21645 --- | ||||
| 
 | ||||
| 
 | ||||
| if __name__ == '__main__': | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Victor Stinner
						Victor Stinner