diff options
Diffstat (limited to 'setuptools/_distutils/tests/test_unixccompiler.py')
-rw-r--r-- | setuptools/_distutils/tests/test_unixccompiler.py | 70 |
1 files changed, 49 insertions, 21 deletions
diff --git a/setuptools/_distutils/tests/test_unixccompiler.py b/setuptools/_distutils/tests/test_unixccompiler.py index c8b4c149..879769fc 100644 --- a/setuptools/_distutils/tests/test_unixccompiler.py +++ b/setuptools/_distutils/tests/test_unixccompiler.py @@ -14,16 +14,18 @@ from distutils.util import _clear_cached_macosx_ver from . import support -class UnixCCompilerTestCase(support.TempdirManager, unittest.TestCase): +class UnixCCompilerTestCase(support.TempdirManager, unittest.TestCase): def setUp(self): super().setUp() self._backup_platform = sys.platform self._backup_get_config_var = sysconfig.get_config_var self._backup_get_config_vars = sysconfig.get_config_vars + class CompilerWrapper(UnixCCompiler): def rpath_foo(self): return self.runtime_library_dir_option('/foo') + self.cc = CompilerWrapper() def tearDown(self): @@ -49,18 +51,18 @@ class UnixCCompilerTestCase(support.TempdirManager, unittest.TestCase): # Version value of None generates two tests: as None and as empty string # Expected flag value of None means an mismatch exception is expected darwin_test_cases = [ - ((None , None ), darwin_lib_flag), - ((None , '11' ), darwin_rpath_flag), - (('10' , None ), darwin_lib_flag), - (('10.3' , None ), darwin_lib_flag), - (('10.3.1', None ), darwin_lib_flag), - (('10.5' , None ), darwin_rpath_flag), - (('10.5.1', None ), darwin_rpath_flag), - (('10.3' , '10.3' ), darwin_lib_flag), - (('10.3' , '10.5' ), darwin_rpath_flag), - (('10.5' , '10.3' ), darwin_lib_flag), - (('10.5' , '11' ), darwin_rpath_flag), - (('10.4' , '10' ), None), + ((None, None), darwin_lib_flag), + ((None, '11'), darwin_rpath_flag), + (('10', None), darwin_lib_flag), + (('10.3', None), darwin_lib_flag), + (('10.3.1', None), darwin_lib_flag), + (('10.5', None), darwin_rpath_flag), + (('10.5.1', None), darwin_rpath_flag), + (('10.3', '10.3'), darwin_lib_flag), + (('10.3', '10.5'), darwin_rpath_flag), + (('10.5', '10.3'), darwin_lib_flag), + (('10.5', '11'), darwin_rpath_flag), + (('10.4', '10'), None), ] def make_darwin_gcv(syscfg_macosx_ver): @@ -68,12 +70,15 @@ class UnixCCompilerTestCase(support.TempdirManager, unittest.TestCase): if var == darwin_ver_var: return syscfg_macosx_ver return "xxx" + return gcv def do_darwin_test(syscfg_macosx_ver, env_macosx_ver, expected_flag): env = os.environ - msg = "macOS version = (sysconfig=%r, env=%r)" % \ - (syscfg_macosx_ver, env_macosx_ver) + msg = "macOS version = (sysconfig=%r, env=%r)" % ( + syscfg_macosx_ver, + env_macosx_ver, + ) # Save old_gcv = sysconfig.get_config_var @@ -91,8 +96,9 @@ class UnixCCompilerTestCase(support.TempdirManager, unittest.TestCase): if expected_flag is not None: self.assertEqual(self.cc.rpath_foo(), expected_flag, msg=msg) else: - with self.assertRaisesRegex(DistutilsPlatformError, - darwin_ver_var + r' mismatch', msg=msg): + with self.assertRaisesRegex( + DistutilsPlatformError, darwin_ver_var + r' mismatch', msg=msg + ): self.cc.rpath_foo() # Restore @@ -118,18 +124,22 @@ class UnixCCompilerTestCase(support.TempdirManager, unittest.TestCase): # hp-ux sys.platform = 'hp-ux' + def gcv(v): return 'xxx' + sysconfig.get_config_var = gcv self.assertEqual(self.cc.rpath_foo(), ['+s', '-L/foo']) def gcv(v): return 'gcc' + sysconfig.get_config_var = gcv self.assertEqual(self.cc.rpath_foo(), ['-Wl,+s', '-L/foo']) def gcv(v): return 'g++' + sysconfig.get_config_var = gcv self.assertEqual(self.cc.rpath_foo(), ['-Wl,+s', '-L/foo']) @@ -137,11 +147,13 @@ class UnixCCompilerTestCase(support.TempdirManager, unittest.TestCase): # GCC GNULD sys.platform = 'bar' + def gcv(v): if v == 'CC': return 'gcc' elif v == 'GNULD': return 'yes' + sysconfig.get_config_var = gcv self.assertEqual(self.cc.rpath_foo(), '-Wl,--enable-new-dtags,-R/foo') @@ -150,47 +162,56 @@ class UnixCCompilerTestCase(support.TempdirManager, unittest.TestCase): return 'gcc -pthread -B /bar' elif v == 'GNULD': return 'yes' + sysconfig.get_config_var = gcv self.assertEqual(self.cc.rpath_foo(), '-Wl,--enable-new-dtags,-R/foo') # GCC non-GNULD sys.platform = 'bar' + def gcv(v): if v == 'CC': return 'gcc' elif v == 'GNULD': return 'no' + sysconfig.get_config_var = gcv self.assertEqual(self.cc.rpath_foo(), '-Wl,-R/foo') # GCC GNULD with fully qualified configuration prefix # see #7617 sys.platform = 'bar' + def gcv(v): if v == 'CC': return 'x86_64-pc-linux-gnu-gcc-4.4.2' elif v == 'GNULD': return 'yes' + sysconfig.get_config_var = gcv self.assertEqual(self.cc.rpath_foo(), '-Wl,--enable-new-dtags,-R/foo') # non-GCC GNULD sys.platform = 'bar' + def gcv(v): if v == 'CC': return 'cc' elif v == 'GNULD': return 'yes' + sysconfig.get_config_var = gcv self.assertEqual(self.cc.rpath_foo(), '-Wl,--enable-new-dtags,-R/foo') # non-GCC non-GNULD sys.platform = 'bar' + def gcv(v): if v == 'CC': return 'cc' elif v == 'GNULD': return 'no' + sysconfig.get_config_var = gcv self.assertEqual(self.cc.rpath_foo(), '-Wl,-R/foo') @@ -207,6 +228,7 @@ class UnixCCompilerTestCase(support.TempdirManager, unittest.TestCase): if args: return list(map(sysconfig.get_config_var, args)) return _orig() + sysconfig.get_config_var = gcv sysconfig.get_config_vars = gcvs with EnvironmentVarGuard() as env: @@ -223,6 +245,7 @@ class UnixCCompilerTestCase(support.TempdirManager, unittest.TestCase): pypa/distutils#126 """ + def gcv(v): if v == 'LDSHARED': return 'gcc-4.2 -bundle -undefined dynamic_lookup ' @@ -237,10 +260,13 @@ class UnixCCompilerTestCase(support.TempdirManager, unittest.TestCase): sysconfig.get_config_var = gcv sysconfig.get_config_vars = gcvs - with patch.object(self.cc, 'spawn', return_value=None) as mock_spawn, \ - patch.object(self.cc, '_need_link', return_value=True), \ - patch.object(self.cc, 'mkpath', return_value=None), \ - EnvironmentVarGuard() as env: + with patch.object( + self.cc, 'spawn', return_value=None + ) as mock_spawn, patch.object( + self.cc, '_need_link', return_value=True + ), patch.object( + self.cc, 'mkpath', return_value=None + ), EnvironmentVarGuard() as env: env['CC'] = 'ccache my_cc' env['CXX'] = 'my_cxx' del env['LDSHARED'] @@ -265,6 +291,7 @@ class UnixCCompilerTestCase(support.TempdirManager, unittest.TestCase): if args: return list(map(sysconfig.get_config_var, args)) return _orig() + sysconfig.get_config_var = gcv sysconfig.get_config_vars = gcvs with EnvironmentVarGuard() as env: @@ -285,5 +312,6 @@ class UnixCCompilerTestCase(support.TempdirManager, unittest.TestCase): def test_suite(): return unittest.TestLoader().loadTestsFromTestCase(UnixCCompilerTestCase) + if __name__ == "__main__": run_unittest(test_suite()) |