bpo-41818: Fix test_master_read() so that it succeeds on all platforms that either raise OSError or return b"" upon reading from master (GH-23536)

Signed-off-by: Soumendra Ganguly <soumendraganguly@gmail.com>
diff --git a/Lib/test/test_pty.py b/Lib/test/test_pty.py
index a45be28..190d8d7 100644
--- a/Lib/test/test_pty.py
+++ b/Lib/test/test_pty.py
@@ -17,7 +17,6 @@
 import struct
 import tty
 import fcntl
-import platform
 import warnings
 
 TEST_STRING_1 = b"I wish to buy a fish license.\n"
@@ -82,12 +81,6 @@ def expectedFailureIfStdinIsTTY(fun):
         pass
     return fun
 
-def expectedFailureOnBSD(fun):
-    PLATFORM = platform.system()
-    if PLATFORM.endswith("BSD") or PLATFORM == "Darwin":
-        return unittest.expectedFailure(fun)
-    return fun
-
 def _get_term_winsz(fd):
     s = struct.pack("HHHH", 0, 0, 0, 0)
     return fcntl.ioctl(fd, _TIOCGWINSZ, s)
@@ -314,7 +307,6 @@ def test_fork(self):
 
         os.close(master_fd)
 
-    @expectedFailureOnBSD
     def test_master_read(self):
         debug("Calling pty.openpty()")
         master_fd, slave_fd = pty.openpty()
@@ -324,10 +316,13 @@ def test_master_read(self):
         os.close(slave_fd)
 
         debug("Reading from master_fd")
-        with self.assertRaises(OSError):
-            os.read(master_fd, 1)
+        try:
+            data = os.read(master_fd, 1)
+        except OSError: # Linux
+            data = b""
 
         os.close(master_fd)
+        self.assertEqual(data, b"")
 
 class SmallPtyTests(unittest.TestCase):
     """These tests don't spawn children or hang."""