From 4c77a0c2c585377997897497c3004c31be47cb01 Mon Sep 17 00:00:00 2001 From: Skip Montanaro Date: Tue, 19 Dec 2023 16:17:41 -0600 Subject: [PATCH 1/5] fix check for LDLIBRARY on framework builds --- Lib/test/test_sysconfig.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Lib/test/test_sysconfig.py b/Lib/test/test_sysconfig.py index a19c04b1b2cde5..a8c4e30e4eb7fc 100644 --- a/Lib/test/test_sysconfig.py +++ b/Lib/test/test_sysconfig.py @@ -405,6 +405,7 @@ def test_soabi(self): def test_library(self): library = sysconfig.get_config_var('LIBRARY') ldlibrary = sysconfig.get_config_var('LDLIBRARY') + config_args = sysconfig.get_config_var('CONFIG_ARGS') major, minor = sys.version_info[:2] if sys.platform == 'win32': self.assertTrue(library.startswith(f'python{major}{minor}')) @@ -413,7 +414,10 @@ def test_library(self): else: self.assertTrue(library.startswith(f'libpython{major}.{minor}')) self.assertTrue(library.endswith('.a')) - self.assertTrue(ldlibrary.startswith(f'libpython{major}.{minor}')) + if "--enable-framework" not in config_args: + self.assertTrue(ldlibrary.startswith(f'libpython{major}.{minor}')) + else: + self.assertTrue(ldlibrary.endswith(f'{major}.{minor}/Python')) @unittest.skipUnless(sys.platform == "darwin", "test only relevant on MacOSX") @requires_subprocess() From 0f9f2b934e2499d6df2d6f6f06e6a0b5d6c08d6e Mon Sep 17 00:00:00 2001 From: Skip Montanaro Date: Tue, 19 Dec 2023 16:38:38 -0600 Subject: [PATCH 2/5] better structure, suggested by Ned Deily --- Lib/test/test_sysconfig.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Lib/test/test_sysconfig.py b/Lib/test/test_sysconfig.py index a8c4e30e4eb7fc..a9a3f6b9d08874 100644 --- a/Lib/test/test_sysconfig.py +++ b/Lib/test/test_sysconfig.py @@ -405,7 +405,6 @@ def test_soabi(self): def test_library(self): library = sysconfig.get_config_var('LIBRARY') ldlibrary = sysconfig.get_config_var('LDLIBRARY') - config_args = sysconfig.get_config_var('CONFIG_ARGS') major, minor = sys.version_info[:2] if sys.platform == 'win32': self.assertTrue(library.startswith(f'python{major}{minor}')) @@ -414,10 +413,10 @@ def test_library(self): else: self.assertTrue(library.startswith(f'libpython{major}.{minor}')) self.assertTrue(library.endswith('.a')) - if "--enable-framework" not in config_args: - self.assertTrue(ldlibrary.startswith(f'libpython{major}.{minor}')) - else: + if sys.platform == 'darwin' and sys._framework: self.assertTrue(ldlibrary.endswith(f'{major}.{minor}/Python')) + else: + self.assertTrue(ldlibrary.startswith(f'libpython{major}.{minor}')) @unittest.skipUnless(sys.platform == "darwin", "test only relevant on MacOSX") @requires_subprocess() From 124240588bcea35af756c77fe0400fc89581c5de Mon Sep 17 00:00:00 2001 From: Skip Montanaro Date: Wed, 20 Dec 2023 09:04:39 -0600 Subject: [PATCH 3/5] accommodate --with-framework-name --- Lib/test/test_sysconfig.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lib/test/test_sysconfig.py b/Lib/test/test_sysconfig.py index a9a3f6b9d08874..48de6c44e48d13 100644 --- a/Lib/test/test_sysconfig.py +++ b/Lib/test/test_sysconfig.py @@ -414,7 +414,7 @@ def test_library(self): self.assertTrue(library.startswith(f'libpython{major}.{minor}')) self.assertTrue(library.endswith('.a')) if sys.platform == 'darwin' and sys._framework: - self.assertTrue(ldlibrary.endswith(f'{major}.{minor}/Python')) + self.assertTrue(ldlibrary.endswith(f'{major}.{minor}/{sys._framework}')) else: self.assertTrue(ldlibrary.startswith(f'libpython{major}.{minor}')) From a72755096b8315261536b8a5fc4dec509189ce9f Mon Sep 17 00:00:00 2001 From: Skip Montanaro Date: Thu, 21 Dec 2023 09:11:56 -0600 Subject: [PATCH 4/5] patch requested by Ronald Oussoren to fix treatment of sys._framework --- Lib/test/test_sysconfig.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Lib/test/test_sysconfig.py b/Lib/test/test_sysconfig.py index 48de6c44e48d13..2db5bc1970bf02 100644 --- a/Lib/test/test_sysconfig.py +++ b/Lib/test/test_sysconfig.py @@ -43,6 +43,7 @@ def setUp(self): self.name = os.name self.platform = sys.platform self.version = sys.version + self._framework = sys._framework self.sep = os.sep self.join = os.path.join self.isabs = os.path.isabs @@ -66,6 +67,7 @@ def tearDown(self): os.name = self.name sys.platform = self.platform sys.version = self.version + sys._framework = self._framework os.sep = self.sep os.path.join = self.join os.path.isabs = self.isabs @@ -139,7 +141,7 @@ def test_get_preferred_schemes(self): # Mac, framework build. os.name = 'posix' sys.platform = 'darwin' - sys._framework = True + sys._framework = "MyPython" self.assertIsInstance(schemes, dict) self.assertEqual(set(schemes), expected_schemes) From 97a6a9745f25bd4a6a5eb1f6f49e65f92d69ad87 Mon Sep 17 00:00:00 2001 From: Ned Deily Date: Tue, 2 Jan 2024 15:38:15 -0500 Subject: [PATCH 5/5] Temporarily skip test_library for macOS framework builds until the issue of LDLIBRARY value is resolved --- Lib/test/test_sysconfig.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lib/test/test_sysconfig.py b/Lib/test/test_sysconfig.py index 2db5bc1970bf02..be609a0abd29c8 100644 --- a/Lib/test/test_sysconfig.py +++ b/Lib/test/test_sysconfig.py @@ -416,7 +416,7 @@ def test_library(self): self.assertTrue(library.startswith(f'libpython{major}.{minor}')) self.assertTrue(library.endswith('.a')) if sys.platform == 'darwin' and sys._framework: - self.assertTrue(ldlibrary.endswith(f'{major}.{minor}/{sys._framework}')) + self.skipTest('gh-110824: skip LDLIBRARY test for framework build') else: self.assertTrue(ldlibrary.startswith(f'libpython{major}.{minor}'))