From 07c34bf19f0dad2d9780e213f462882932b79429 Mon Sep 17 00:00:00 2001 From: Richard Oudkerk Date: Sun, 9 Dec 2012 16:05:22 +0000 Subject: Make test of poll() use unbuffered IO --- Lib/test/test_poll.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Lib/test/test_poll.py b/Lib/test/test_poll.py index d0e4f32..3b7926d 100644 --- a/Lib/test/test_poll.py +++ b/Lib/test/test_poll.py @@ -1,6 +1,6 @@ # 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 try: @@ -114,7 +114,9 @@ class PollTests(unittest.TestCase): def test_poll2(self): 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.register( p, select.POLLIN ) for tout in (0, 1000, 2000, 4000, 8000, 16000) + (-1,)*10: @@ -124,7 +126,7 @@ class PollTests(unittest.TestCase): fd, flags = fdlist[0] if flags & select.POLLHUP: line = p.readline() - if line != "": + if line != b"": self.fail('error: pipe seems to be closed, but still returns data') continue @@ -132,6 +134,7 @@ class PollTests(unittest.TestCase): line = p.readline() if not line: break + self.assertEqual(line, b'testing...\n') continue else: self.fail('Unexpected return value from select.poll: %s' % fdlist) -- cgit v0.12