commit: a9d497a139577a661b4d8c3f93aa659b8e9e2024 Author: Zac Medico <zmedico <AT> gentoo <DOT> org> AuthorDate: Sat Oct 25 18:51:43 2025 +0000 Commit: Zac Medico <zmedico <AT> gentoo <DOT> org> CommitDate: Sat Oct 25 19:13:28 2025 +0000 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=a9d497a1
LockNonblockTestCase: support multiprocessing forkserver start method Bug: https://bugs.gentoo.org/965125 Signed-off-by: Zac Medico <zmedico <AT> gentoo.org> lib/portage/tests/locks/test_lock_nonblock.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/lib/portage/tests/locks/test_lock_nonblock.py b/lib/portage/tests/locks/test_lock_nonblock.py index d30dfe113b..bd197c0d0b 100644 --- a/lib/portage/tests/locks/test_lock_nonblock.py +++ b/lib/portage/tests/locks/test_lock_nonblock.py @@ -14,12 +14,14 @@ from portage.tests import TestCase class LockNonblockTestCase(TestCase): - def _testLockNonblock(self): + def _testLockNonblock(self, env=None): tempdir = tempfile.mkdtemp() try: path = os.path.join(tempdir, "lock_me") lock1 = portage.locks.lockfile(path) - proc = multiprocessing.Process(target=self._lock_subprocess, args=(path,)) + proc = multiprocessing.Process( + target=self._lock_subprocess, args=(path, env) + ) proc.start() self.assertEqual(proc.pid > 0, True) proc.join() @@ -30,7 +32,12 @@ class LockNonblockTestCase(TestCase): shutil.rmtree(tempdir) @staticmethod - def _lock_subprocess(path): + def _lock_subprocess(path, env): + if env is not None: + # This serves to implement __PORTAGE_TEST_HARDLINK_LOCKS + # environment variable inheritance for the multiprocessing + # forkserver start method. + os.environ.update(env) portage.locks._close_fds() # Disable close_fds since we don't exec # (see _setup_pipes docstring). @@ -55,7 +62,7 @@ class LockNonblockTestCase(TestCase): prev_state = os.environ.pop("__PORTAGE_TEST_HARDLINK_LOCKS", None) os.environ["__PORTAGE_TEST_HARDLINK_LOCKS"] = "1" try: - self._testLockNonblock() + self._testLockNonblock(env={"__PORTAGE_TEST_HARDLINK_LOCKS": "1"}) finally: os.environ.pop("__PORTAGE_TEST_HARDLINK_LOCKS", None) if prev_state is not None:
