From: Serhiy Storchaka Date: Wed, 22 Jul 2026 13:06:06 +0000 (+0300) Subject: [3.13] gh-154272: Skip forkserver tests when the start method is unavailable (GH... X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=45d469d8e592c4c376ef38caaac7daf94fa04b51;p=thirdparty%2FPython%2Fcpython.git [3.13] gh-154272: Skip forkserver tests when the start method is unavailable (GH-154274) (GH-154472) (cherry picked from commit 13e3f8aa839d71285f3408241b0518da499eac39) Co-authored-by: Claude Opus 4.8 (1M context) --- diff --git a/Lib/test/test_concurrent_futures/util.py b/Lib/test/test_concurrent_futures/util.py index e85ef3b1c916..6e26febaabb3 100644 --- a/Lib/test/test_concurrent_futures/util.py +++ b/Lib/test/test_concurrent_futures/util.py @@ -130,6 +130,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): diff --git a/Lib/test/test_multiprocessing_forkserver/__init__.py b/Lib/test/test_multiprocessing_forkserver/__init__.py index d91715a344df..6bac9b7f9a97 100644 --- a/Lib/test/test_multiprocessing_forkserver/__init__.py +++ b/Lib/test/test_multiprocessing_forkserver/__init__.py @@ -1,3 +1,4 @@ +import multiprocessing import os.path import sys import unittest @@ -9,5 +10,10 @@ if support.PGO: if sys.platform == "win32": raise unittest.SkipTest("forkserver is not available on Windows") +# 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)