diff options
Diffstat (limited to 'Lib/test/test_posix.py')
-rw-r--r-- | Lib/test/test_posix.py | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/Lib/test/test_posix.py b/Lib/test/test_posix.py index afeb616..3caf824 100644 --- a/Lib/test/test_posix.py +++ b/Lib/test/test_posix.py @@ -280,11 +280,29 @@ class PosixTester(unittest.TestCase): if hasattr(posix, 'strerror'): self.assertTrue(posix.strerror(0)) + def check_pipe_func(self, pipe_func): + master_fd, slave_fd = pipe_func() + try: + # Simulate a subprocess writing some data to the + # slave end of the pipe, and then exiting. + data = b'TEST DATA' + try: + os.write(slave_fd, data) + finally: + os.close(slave_fd) + # Request more data than available + gotdata = os.read(master_fd, len(data) + 1) + self.assertEqual(gotdata, data) + finally: + os.close(master_fd) + def test_pipe(self): if hasattr(posix, 'pipe'): - reader, writer = posix.pipe() - os.close(reader) - os.close(writer) + self.check_pipe_func(posix.pipe) + + def test_openpty(self): + if hasattr(posix, 'openpty'): + self.check_pipe_func(posix.openpty) def test_tempnam(self): if hasattr(posix, 'tempnam'): |