mirror of
https://github.com/python/cpython.git
synced 2025-11-02 19:12:55 +00:00
initial import of the packaging package in the standard library
This commit is contained in:
parent
566f8a646e
commit
1231a4e097
193 changed files with 30376 additions and 149 deletions
132
Lib/packaging/tests/test_unixccompiler.py
Normal file
132
Lib/packaging/tests/test_unixccompiler.py
Normal file
|
|
@ -0,0 +1,132 @@
|
|||
"""Tests for packaging.unixccompiler."""
|
||||
import sys
|
||||
|
||||
import sysconfig
|
||||
from packaging.compiler.unixccompiler import UnixCCompiler
|
||||
from packaging.tests import unittest
|
||||
|
||||
|
||||
class UnixCCompilerTestCase(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self._backup_platform = sys.platform
|
||||
self._backup_get_config_var = sysconfig.get_config_var
|
||||
|
||||
class CompilerWrapper(UnixCCompiler):
|
||||
def rpath_foo(self):
|
||||
return self.runtime_library_dir_option('/foo')
|
||||
self.cc = CompilerWrapper()
|
||||
|
||||
def tearDown(self):
|
||||
sys.platform = self._backup_platform
|
||||
sysconfig.get_config_var = self._backup_get_config_var
|
||||
|
||||
@unittest.skipIf(sys.platform == 'win32', 'irrelevant on win32')
|
||||
def test_runtime_libdir_option(self):
|
||||
|
||||
# Issue #5900: Ensure RUNPATH is added to extension
|
||||
# modules with RPATH if GNU ld is used
|
||||
|
||||
# darwin
|
||||
sys.platform = 'darwin'
|
||||
self.assertEqual(self.cc.rpath_foo(), '-L/foo')
|
||||
|
||||
# hp-ux
|
||||
sys.platform = 'hp-ux'
|
||||
old_gcv = sysconfig.get_config_var
|
||||
|
||||
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'])
|
||||
|
||||
sysconfig.get_config_var = old_gcv
|
||||
|
||||
# irix646
|
||||
sys.platform = 'irix646'
|
||||
self.assertEqual(self.cc.rpath_foo(), ['-rpath', '/foo'])
|
||||
|
||||
# osf1V5
|
||||
sys.platform = 'osf1V5'
|
||||
self.assertEqual(self.cc.rpath_foo(), ['-rpath', '/foo'])
|
||||
|
||||
# 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')
|
||||
|
||||
# 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(), '-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(), '-R/foo')
|
||||
|
||||
# AIX C/C++ linker
|
||||
sys.platform = 'aix'
|
||||
|
||||
def gcv(v):
|
||||
return 'xxx'
|
||||
sysconfig.get_config_var = gcv
|
||||
self.assertEqual(self.cc.rpath_foo(), '-blibpath:/foo')
|
||||
|
||||
|
||||
def test_suite():
|
||||
return unittest.makeSuite(UnixCCompilerTestCase)
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main(defaultTest="test_suite")
|
||||
Loading…
Add table
Add a link
Reference in a new issue