PATH:
lib64
/
python2.7
/
distutils
/
tests
"""Tests for distutils.unixccompiler.""" import os import sys import unittest from test.test_support import EnvironmentVarGuard, run_unittest from distutils import sysconfig from distutils.unixccompiler import UnixCCompiler 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', "can't test on Windows") 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,-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,-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(), '-R/foo') @unittest.skipUnless(sys.platform == 'darwin', 'test only relevant for OS X') def test_osx_cc_overrides_ldshared(self): # Issue #18080: # ensure that setting CC env variable also changes default linker def gcv(v): if v == 'LDSHARED': return 'gcc-4.2 -bundle -undefined dynamic_lookup ' return 'gcc-4.2' sysconfig.get_config_var = gcv with EnvironmentVarGuard() as env: env['CC'] = 'my_cc' del env['LDSHARED'] sysconfig.customize_compiler(self.cc) self.assertEqual(self.cc.linker_so[0], 'my_cc') @unittest.skipUnless(sys.platform == 'darwin', 'test only relevant for OS X') def test_osx_explicit_ldshared(self): # Issue #18080: # ensure that setting CC env variable does not change # explicit LDSHARED setting for linker def gcv(v): if v == 'LDSHARED': return 'gcc-4.2 -bundle -undefined dynamic_lookup ' return 'gcc-4.2' sysconfig.get_config_var = gcv with EnvironmentVarGuard() as env: env['CC'] = 'my_cc' env['LDSHARED'] = 'my_ld -bundle -dynamic' sysconfig.customize_compiler(self.cc) self.assertEqual(self.cc.linker_so[0], 'my_ld') def test_suite(): return unittest.makeSuite(UnixCCompilerTestCase) if __name__ == "__main__": run_unittest(test_suite())
[+]
..
[-] test_install.py
[open]
[-] test_install_lib.py
[open]
[-] test_build_ext.pyc
[open]
[-] test_config_cmd.pyc
[open]
[-] test_versionpredicate.py
[open]
[-] test_archive_util.pyo
[open]
[-] test_dir_util.py
[open]
[-] test_build_ext.pyo
[open]
[-] test_spawn.pyc
[open]
[-] test_bdist_msi.py
[open]
[-] test_dir_util.pyc
[open]
[-] test_build_py.pyc
[open]
[-] test_util.pyc
[open]
[-] test_core.pyo
[open]
[-] test_upload.pyc
[open]
[-] test_sdist.py
[open]
[-] test_install_headers.py
[open]
[-] test_install_data.pyc
[open]
[-] test_version.pyo
[open]
[-] test_bdist_wininst.pyc
[open]
[-] test_sdist.pyo
[open]
[-] test_bdist_rpm.py
[open]
[-] test_ccompiler.pyo
[open]
[-] test_msvc9compiler.py
[open]
[-] test_install_headers.pyc
[open]
[-] test_install_lib.pyc
[open]
[-] test_bdist_rpm.pyo
[open]
[-] test_install_scripts.pyo
[open]
[-] setuptools_build_ext.pyc
[open]
[-] test_msvc9compiler.pyo
[open]
[-] test_build_py.py
[open]
[-] test_install.py.debug-build
[open]
[-] test_build_clib.pyo
[open]
[-] test_dep_util.pyc
[open]
[-] test_text_file.py
[open]
[-] test_install.pyc
[open]
[-] test_install_scripts.py
[open]
[-] setuptools_extension.py
[open]
[-] includetest.rst
[open]
[-] test_build_scripts.pyo
[open]
[-] test_bdist.pyc
[open]
[-] support.py
[open]
[-] test_build_clib.pyc
[open]
[-] test_file_util.pyo
[open]
[-] test_core.pyc
[open]
[-] test_register.pyo
[open]
[-] test_spawn.py
[open]
[-] __init__.pyc
[open]
[-] test_archive_util.pyc
[open]
[-] test_dist.pyo
[open]
[-] test_versionpredicate.pyc
[open]
[-] test_dist.py
[open]
[-] test_filelist.pyo
[open]
[-] test_install_data.pyo
[open]
[-] test_build_scripts.py
[open]
[-] test_dep_util.pyo
[open]
[-] test_filelist.pyc
[open]
[-] test_bdist.pyo
[open]
[-] test_check.pyc
[open]
[-] xxmodule.c
[open]
[-] test_bdist_wininst.py
[open]
[-] test_bdist_dumb.pyo
[open]
[-] test_sysconfig.py
[open]
[-] support.pyo
[open]
[-] test_sdist.pyc
[open]
[-] test_versionpredicate.pyo
[open]
[-] test_register.pyc
[open]
[-] test_build.pyo
[open]
[-] test_util.pyo
[open]
[-] test_version.pyc
[open]
[-] test_util.py
[open]
[-] setuptools_build_ext.py
[open]
[-] test_bdist.py
[open]
[-] test_build_py.pyo
[open]
[-] test_ccompiler.py
[open]
[-] test_sysconfig.pyc
[open]
[-] test_file_util.pyc
[open]
[-] test_file_util.py
[open]
[-] test_install_scripts.pyc
[open]
[-] test_cmd.pyo
[open]
[-] test_clean.pyc
[open]
[-] test_dep_util.py
[open]
[-] test_dir_util.pyo
[open]
[-] test_bdist_dumb.py
[open]
[-] test_config.pyc
[open]
[-] test_unixccompiler.pyo
[open]
[-] test_install.pyo
[open]
[-] test_config.pyo
[open]
[-] test_install_lib.pyo
[open]
[-] test_bdist_msi.pyo
[open]
[-] setuptools_extension.pyc
[open]
[-] test_check.pyo
[open]
[-] test_build_scripts.pyc
[open]
[-] test_config_cmd.py
[open]
[-] test_bdist_wininst.pyo
[open]
[-] test_unixccompiler.pyc
[open]
[-] test_dist.pyc
[open]
[-] Setup.sample
[open]
[-] test_bdist_rpm.pyc
[open]
[-] test_cmd.pyc
[open]
[-] test_archive_util.py
[open]
[-] test_upload.py
[open]
[-] test_bdist_dumb.pyc
[open]
[-] test_ccompiler.pyc
[open]
[-] test_core.py
[open]
[-] test_install_headers.pyo
[open]
[-] test_bdist_msi.pyc
[open]
[-] test_spawn.pyo
[open]
[-] __init__.py
[open]
[-] test_cmd.py
[open]
[-] test_unixccompiler.py
[open]
[-] test_build_ext.py
[open]
[-] test_text_file.pyo
[open]
[-] test_check.py
[open]
[-] test_config_cmd.pyo
[open]
[-] test_clean.py
[open]
[-] test_text_file.pyc
[open]
[-] test_msvc9compiler.pyc
[open]
[-] test_filelist.py
[open]
[-] test_register.py
[open]
[-] test_sysconfig.pyo
[open]
[-] test_install_data.py
[open]
[-] setuptools_extension.pyo
[open]
[-] test_upload.pyo
[open]
[-] test_build.py
[open]
[-] test_version.py
[open]
[-] test_build.pyc
[open]
[-] test_build_clib.py
[open]
[-] test_clean.pyo
[open]
[-] __init__.pyo
[open]
[-] test_config.py
[open]
[-] setuptools_build_ext.pyo
[open]
[-] support.pyc
[open]