]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.15] gh-154272: Skip forkserver tests when the start method is unavailable (GH...
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Wed, 22 Jul 2026 11:44:19 +0000 (13:44 +0200)
committerGitHub <noreply@github.com>
Wed, 22 Jul 2026 11:44:19 +0000 (11:44 +0000)
(cherry picked from commit 13e3f8aa839d71285f3408241b0518da499eac39)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Lib/test/test_concurrent_futures/util.py
Lib/test/test_multiprocessing_forkserver/__init__.py

index 2a9e55152b82d5484c1ea174d5b3c7d341628bb7..1dad78f08e7af57ea7c9c87de9cf88dd7fbbc2c4 100644 (file)
@@ -139,6 +139,8 @@ class ProcessPoolForkserverMixin(ExecutorMixin):
             self.skipTest("require unix system")
         if support.check_sanitizer(thread=True):
             self.skipTest("TSAN doesn't support threads after fork")
+        if "forkserver" not in multiprocessing.get_all_start_methods():
+            self.skipTest("forkserver start method is not available")
         return super().get_context()
 
     def create_event(self):
index 7b1b884ab297b571fcd44a84b7b1aa9c10e26f74..162adf2071f732b88bbe9bcd2528af712e6f3c48 100644 (file)
@@ -1,3 +1,4 @@
+import multiprocessing
 import os.path
 import sys
 import unittest
@@ -12,5 +13,10 @@ if sys.platform == "win32":
 if not support.has_fork_support:
     raise unittest.SkipTest("requires working os.fork()")
 
+# The forkserver start method requires passing file descriptors over a Unix
+# socket, which is not available on every platform (e.g. Solaris/illumos).
+if "forkserver" not in multiprocessing.get_all_start_methods():
+    raise unittest.SkipTest("forkserver start method is not available")
+
 def load_tests(*args):
     return support.load_package_tests(os.path.dirname(__file__), *args)