A test of the select module that is actually reproduceable!

This commit is contained in:
Barry Warsaw 1996-12-11 23:58:46 +00:00
parent 3176bb1df2
commit 792c94a320
3 changed files with 61 additions and 4 deletions

View File

@ -0,0 +1,25 @@
test_select
timeout = 0
timeout = 1
'testing...\012'
timeout = 2
'testing...\012'
timeout = 4
'testing...\012'
timeout = 8
'testing...\012'
timeout = 16
'testing...\012'
timeout = None
'testing...\012'
timeout = None
'testing...\012'
timeout = None
'testing...\012'
timeout = None
'testing...\012'
timeout = None
'testing...\012'
timeout = None
''
EOF

View File

@ -1,14 +1,44 @@
# Testing select module
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 select
import os
cmd = 'for i in 0 1 2 3 4 5 6 7 8 9; do date; sleep 3; done'
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:
print 'timeout =', tout
rfd, wfd, xfd = select.select([p], [], [], tout)
print rfd, wfd, xfd
## print rfd, wfd, xfd
if (rfd, wfd, xfd) == ([], [], []):
continue
if (rfd, wfd, xfd) == ([p], [], []):
@ -21,3 +51,4 @@ def test():
print 'Heh?'
test()

View File

@ -19,6 +19,7 @@ tests = ['test_grammar',
'test_nis',
'test_pwd',
'test_rgbimg',
'test_select',
]
if __name__ == '__main__':