Temporary commit of fix to issue #5380 (in order to watch buildbot response)
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 @@
         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'):