2009-05-09 05:28:53 -03:00
|
|
|
"""Tests for distutils.unixccompiler."""
|
|
|
|
import sys
|
|
|
|
import unittest
|
Merged revisions 86236,86240,86332,86340,87271,87273,87447 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
To comply with the 2.x doc style, the methods in trace.rst use brackets around
optional arguments. The rest is a mostly straight merge, modulo support changed
to test_support and use of the old super call style in test_tuple.
........
r86236 | eric.araujo | 2010-11-06 03:44:43 +0100 (sam., 06 nov. 2010) | 2 lines
Make sure each test can be run standalone (./python Lib/distutils/tests/x.py)
........
r86240 | eric.araujo | 2010-11-06 05:11:59 +0100 (sam., 06 nov. 2010) | 2 lines
Prevent ResourceWarnings in test_gettext
........
r86332 | eric.araujo | 2010-11-08 19:15:17 +0100 (lun., 08 nov. 2010) | 4 lines
Add missing NEWS entry for a fix committed by Senthil.
All recent modifications to distutils should now be covered in NEWS.
........
r86340 | eric.araujo | 2010-11-08 22:48:23 +0100 (lun., 08 nov. 2010) | 2 lines
This was actually fixed for the previous alpha.
........
r87271 | eric.araujo | 2010-12-15 20:09:58 +0100 (mer., 15 déc. 2010) | 2 lines
Improve trace documentation (#9264). Patch by Eli Bendersky.
........
r87273 | eric.araujo | 2010-12-15 20:30:15 +0100 (mer., 15 déc. 2010) | 2 lines
Use nested method directives, rewrap long lines, fix whitespace.
........
r87447 | eric.araujo | 2010-12-23 20:13:05 +0100 (jeu., 23 déc. 2010) | 2 lines
Fix typo in superclass method name
........
2011-02-02 20:12:18 -04:00
|
|
|
from test.test_support import run_unittest
|
2009-05-09 05:28:53 -03:00
|
|
|
|
2010-03-04 20:16:02 -04:00
|
|
|
from distutils import sysconfig
|
2009-05-09 05:28:53 -03:00
|
|
|
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
|
|
|
|
|
|
|
|
def test_runtime_libdir_option(self):
|
|
|
|
|
|
|
|
# not tested under windows
|
|
|
|
if sys.platform == 'win32':
|
|
|
|
return
|
|
|
|
|
|
|
|
# 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'
|
2009-09-09 05:14:20 -03:00
|
|
|
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
|
2009-05-09 05:28:53 -03:00
|
|
|
|
|
|
|
# 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
|
2010-03-04 20:16:02 -04:00
|
|
|
self.assertEqual(self.cc.rpath_foo(), '-Wl,-R/foo')
|
2009-05-09 05:28:53 -03:00
|
|
|
|
|
|
|
# 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')
|
|
|
|
|
2010-01-08 19:42:23 -04:00
|
|
|
# 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
|
2010-03-04 20:16:02 -04:00
|
|
|
self.assertEqual(self.cc.rpath_foo(), '-Wl,-R/foo')
|
2010-01-08 19:42:23 -04:00
|
|
|
|
|
|
|
|
2009-05-09 05:28:53 -03:00
|
|
|
# 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')
|
|
|
|
|
2009-06-20 10:57:20 -03:00
|
|
|
# AIX C/C++ linker
|
|
|
|
sys.platform = 'aix'
|
|
|
|
def gcv(v):
|
|
|
|
return 'xxx'
|
|
|
|
sysconfig.get_config_var = gcv
|
2010-03-04 20:16:02 -04:00
|
|
|
self.assertEqual(self.cc.rpath_foo(), '-R/foo')
|
2009-06-20 10:57:20 -03:00
|
|
|
|
|
|
|
|
2009-05-09 05:28:53 -03:00
|
|
|
def test_suite():
|
|
|
|
return unittest.makeSuite(UnixCCompilerTestCase)
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
Merged revisions 86236,86240,86332,86340,87271,87273,87447 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
To comply with the 2.x doc style, the methods in trace.rst use brackets around
optional arguments. The rest is a mostly straight merge, modulo support changed
to test_support and use of the old super call style in test_tuple.
........
r86236 | eric.araujo | 2010-11-06 03:44:43 +0100 (sam., 06 nov. 2010) | 2 lines
Make sure each test can be run standalone (./python Lib/distutils/tests/x.py)
........
r86240 | eric.araujo | 2010-11-06 05:11:59 +0100 (sam., 06 nov. 2010) | 2 lines
Prevent ResourceWarnings in test_gettext
........
r86332 | eric.araujo | 2010-11-08 19:15:17 +0100 (lun., 08 nov. 2010) | 4 lines
Add missing NEWS entry for a fix committed by Senthil.
All recent modifications to distutils should now be covered in NEWS.
........
r86340 | eric.araujo | 2010-11-08 22:48:23 +0100 (lun., 08 nov. 2010) | 2 lines
This was actually fixed for the previous alpha.
........
r87271 | eric.araujo | 2010-12-15 20:09:58 +0100 (mer., 15 déc. 2010) | 2 lines
Improve trace documentation (#9264). Patch by Eli Bendersky.
........
r87273 | eric.araujo | 2010-12-15 20:30:15 +0100 (mer., 15 déc. 2010) | 2 lines
Use nested method directives, rewrap long lines, fix whitespace.
........
r87447 | eric.araujo | 2010-12-23 20:13:05 +0100 (jeu., 23 déc. 2010) | 2 lines
Fix typo in superclass method name
........
2011-02-02 20:12:18 -04:00
|
|
|
run_unittest(test_suite())
|