Make test of poll() use unbuffered IO
This commit is contained in:
parent
53dff0c059
commit
07c34bf19f
|
@ -1,6 +1,6 @@
|
||||||
# Test case for the os.poll() function
|
# Test case for the os.poll() function
|
||||||
|
|
||||||
import os, select, random, unittest
|
import os, select, random, unittest, subprocess
|
||||||
from test.support import TESTFN, run_unittest
|
from test.support import TESTFN, run_unittest
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
@ -114,7 +114,9 @@ class PollTests(unittest.TestCase):
|
||||||
|
|
||||||
def test_poll2(self):
|
def test_poll2(self):
|
||||||
cmd = 'for i in 0 1 2 3 4 5 6 7 8 9; do echo testing...; sleep 1; 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')
|
proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE,
|
||||||
|
bufsize=0)
|
||||||
|
p = proc.stdout
|
||||||
pollster = select.poll()
|
pollster = select.poll()
|
||||||
pollster.register( p, select.POLLIN )
|
pollster.register( p, select.POLLIN )
|
||||||
for tout in (0, 1000, 2000, 4000, 8000, 16000) + (-1,)*10:
|
for tout in (0, 1000, 2000, 4000, 8000, 16000) + (-1,)*10:
|
||||||
|
@ -124,7 +126,7 @@ class PollTests(unittest.TestCase):
|
||||||
fd, flags = fdlist[0]
|
fd, flags = fdlist[0]
|
||||||
if flags & select.POLLHUP:
|
if flags & select.POLLHUP:
|
||||||
line = p.readline()
|
line = p.readline()
|
||||||
if line != "":
|
if line != b"":
|
||||||
self.fail('error: pipe seems to be closed, but still returns data')
|
self.fail('error: pipe seems to be closed, but still returns data')
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
@ -132,6 +134,7 @@ class PollTests(unittest.TestCase):
|
||||||
line = p.readline()
|
line = p.readline()
|
||||||
if not line:
|
if not line:
|
||||||
break
|
break
|
||||||
|
self.assertEqual(line, b'testing...\n')
|
||||||
continue
|
continue
|
||||||
else:
|
else:
|
||||||
self.fail('Unexpected return value from select.poll: %s' % fdlist)
|
self.fail('Unexpected return value from select.poll: %s' % fdlist)
|
||||||
|
|
Loading…
Reference in New Issue