]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-38377: Fix skip_if_broken_multiprocessing_synchronize() on macOS (GH-20984)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Fri, 19 Jun 2020 16:19:38 +0000 (09:19 -0700)
committerGitHub <noreply@github.com>
Fri, 19 Jun 2020 16:19:38 +0000 (09:19 -0700)
skip_if_broken_multiprocessing_synchronize() only attempts for create
a semaphore on Linux to fix multiprocessing
test_resource_tracker_reused() on macOS.
(cherry picked from commit 3358da4054b9b0b045eb47dc74dee3d58bfbb1d5)

Co-authored-by: Victor Stinner <vstinner@python.org>
Lib/test/support/__init__.py

index b75dbd214fe3622c04b4bcec487e138cd6275573..3d287a98ac22d382b753b7df9ee1cd38b32e2235 100644 (file)
@@ -3383,7 +3383,7 @@ def skip_if_broken_multiprocessing_synchronize():
     """
     Skip tests if the multiprocessing.synchronize module is missing, if there
     is no available semaphore implementation, or if creating a lock raises an
-    OSError.
+    OSError (on Linux only).
     """
 
     # Skip tests if the _multiprocessing extension is missing.
@@ -3393,10 +3393,11 @@ def skip_if_broken_multiprocessing_synchronize():
     # multiprocessing.synchronize requires _multiprocessing.SemLock.
     synchronize = import_module('multiprocessing.synchronize')
 
-    try:
-        # bpo-38377: On Linux, creating a semaphore is the current user
-        # does not have the permission to create a file in /dev/shm.
-        # Create a semaphore to check permissions.
-        synchronize.Lock(ctx=None)
-    except OSError as exc:
-        raise unittest.SkipTest(f"broken multiprocessing SemLock: {exc!r}")
+    if sys.platform == "linux":
+        try:
+            # bpo-38377: On Linux, creating a semaphore fails with OSError
+            # if the current user does not have the permission to create
+            # a file in /dev/shm/ directory.
+            synchronize.Lock(ctx=None)
+        except OSError as exc:
+            raise unittest.SkipTest(f"broken multiprocessing SemLock: {exc!r}")