Fix for two problems on FreeBSD:

In test_poll1(), unregister file descriptors as they're closed,
    and also close the read end of the pipe
In test_poll2(), make the code assume less about the combinations of flag
    bits that will be returned
This commit is contained in:
Andrew M. Kuchling 2000-08-29 16:53:34 +00:00
parent 78430b655f
commit d50a1877ee
1 changed files with 6 additions and 3 deletions

View File

@ -57,7 +57,9 @@ def test_poll1():
buf = os.read(rd, MSG_LEN)
assert len(buf) == MSG_LEN
print buf
os.close(r2w[rd])
os.close(r2w[rd]) ; os.close( rd )
p.unregister( r2w[rd] )
p.unregister( rd )
writers.remove(r2w[rd])
poll_unit_tests()
@ -145,13 +147,14 @@ def test_poll2():
fdlist = pollster.poll(tout)
if (fdlist == []):
continue
if fdlist[0] == (p.fileno(),select.POLLHUP):
fd, flags = fdlist[0]
if flags & select.POLLHUP:
line = p.readline()
if line != "":
print 'error: pipe seems to be closed, but still returns data'
continue
elif fdlist[0] == (p.fileno(),select.POLLIN):
elif flags & select.POLLIN:
line = p.readline()
if verbose:
print `line`