PATH:
opt
/
bitninja-python-dojo
/
embedded
/
lib
/
python3.9
/
distutils
/
tests
"""Tests for distutils.unixccompiler.""" import sys import unittest from 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 # 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') @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_log.py
[edit]
[-] test_spawn.py
[edit]
[-] test_bdist_dumb.py
[edit]
[-] test_util.py
[edit]
[-] xxmodule.c
[edit]
[-] test_msvc9compiler.py
[edit]
[+]
..
[-] test_dir_util.py
[edit]
[-] test_cmd.py
[edit]
[-] test_dep_util.py
[edit]
[-] test_archive_util.py
[edit]
[-] test_file_util.py
[edit]
[-] test_build_scripts.py
[edit]
[-] test_bdist_rpm.py
[edit]
[-] test_install_lib.py
[edit]
[-] test_build_ext.py
[edit]
[-] test_version.py
[edit]
[-] test_register.py
[edit]
[-] test_text_file.py
[edit]
[-] test_upload.py
[edit]
[-] test_sysconfig.py
[edit]
[-] test_bdist_msi.py
[edit]
[-] test_dist.py
[edit]
[-] support.py
[edit]
[-] test_install.py
[edit]
[-] test_install_scripts.py
[edit]
[+]
__pycache__
[-] test_cygwinccompiler.py
[edit]
[-] test_bdist.py
[edit]
[-] test_install_headers.py
[edit]
[-] test_build_py.py
[edit]
[-] test_build.py
[edit]
[-] test_config_cmd.py
[edit]
[-] test_versionpredicate.py
[edit]
[-] __init__.py
[edit]
[-] test_core.py
[edit]
[-] includetest.rst
[edit]
[-] test_filelist.py
[edit]
[-] test_build_clib.py
[edit]
[-] test_extension.py
[edit]
[-] test_install_data.py
[edit]
[-] test_unixccompiler.py
[edit]
[-] test_sdist.py
[edit]
[-] test_check.py
[edit]
[-] test_config.py
[edit]
[-] test_msvccompiler.py
[edit]
[-] test_clean.py
[edit]
[-] test_bdist_wininst.py
[edit]
[-] Setup.sample
[edit]