summaryrefslogtreecommitdiff
path: root/setuptools/_distutils/tests/test_unixccompiler.py
diff options
context:
space:
mode:
Diffstat (limited to 'setuptools/_distutils/tests/test_unixccompiler.py')
-rw-r--r--setuptools/_distutils/tests/test_unixccompiler.py70
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())