mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 05:31:20 +00:00 
			
		
		
		
	 fff9e20943
			
		
	
	
		fff9e20943
		
	
	
	
	
		
			
			The Compare close contains a close method that checks to see if there
is any unconsumed data in the Compare instance; i.e. if the canonical
output file contains more data than was produced by the current test
run. This method was never called, allowing differences to go
undetected.
Fix is to call close after the test is run (after __import__)
output/test_long and output/test_popen2 needed trivial changes
output/test_select contained lots of text, but test_select.py produced
    no output
		
	
			
		
			
				
	
	
		
			63 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # Testing select module
 | |
| from test_support import verbose
 | |
| import select
 | |
| import os
 | |
| 
 | |
| # test some known error conditions
 | |
| try:
 | |
|     rfd, wfd, xfd = select.select(1, 2, 3)
 | |
| except TypeError:
 | |
|     pass
 | |
| else:
 | |
|     print 'expected TypeError exception not raised'
 | |
| 
 | |
| class Nope:
 | |
|     pass
 | |
| 
 | |
| class Almost:
 | |
|     def fileno(self):
 | |
|         return 'fileno'
 | |
|     
 | |
| try:
 | |
|     rfd, wfd, xfd = select.select([Nope()], [], [])
 | |
| except TypeError:
 | |
|     pass
 | |
| else:
 | |
|     print 'expected TypeError exception not raised'
 | |
| 
 | |
| try:
 | |
|     rfd, wfd, xfd = select.select([Almost()], [], [])
 | |
| except TypeError:
 | |
|     pass
 | |
| else:
 | |
|     print 'expected TypeError exception not raised'
 | |
| 
 | |
| 
 | |
| def test():
 | |
|         import sys
 | |
|         if sys.platform[:3] in ('win', 'mac', 'os2'):
 | |
|                 if verbose:
 | |
|                         print "Can't test select easily on", sys.platform
 | |
|                 return
 | |
|         cmd = 'for i in 0 1 2 3 4 5 6 7 8 9; do echo testing...; sleep 1; done'
 | |
|         p = os.popen(cmd, 'r')
 | |
|         for tout in (0, 1, 2, 4, 8, 16) + (None,)*10:
 | |
|                 if verbose:
 | |
|                         print 'timeout =', tout
 | |
|                 rfd, wfd, xfd = select.select([p], [], [], tout)
 | |
|                 if (rfd, wfd, xfd) == ([], [], []):
 | |
|                         continue
 | |
|                 if (rfd, wfd, xfd) == ([p], [], []):
 | |
|                         line = p.readline()
 | |
|                         if verbose:
 | |
|                                 print `line`
 | |
|                         if not line:
 | |
|                                 if verbose:
 | |
|                                         print 'EOF'
 | |
|                                 break
 | |
|                         continue
 | |
|                 print 'Heh?'
 | |
|         p.close()
 | |
| 
 | |
| test()
 | |
| 
 |