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'):  | 
