test_unixccompiler.py (3341B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\carbon\common\stdlib\distutils\tests\test_unixccompiler.py 2 import sys 3 import unittest 4 from distutils import sysconfig 5 from distutils.unixccompiler import UnixCCompiler 6 7 class UnixCCompilerTestCase(unittest.TestCase): 8 9 def setUp(self): 10 self._backup_platform = sys.platform 11 self._backup_get_config_var = sysconfig.get_config_var 12 13 class CompilerWrapper(UnixCCompiler): 14 15 def rpath_foo(self): 16 return self.runtime_library_dir_option('/foo') 17 18 self.cc = CompilerWrapper() 19 20 def tearDown(self): 21 sys.platform = self._backup_platform 22 sysconfig.get_config_var = self._backup_get_config_var 23 24 def test_runtime_libdir_option(self): 25 if sys.platform == 'win32': 26 return 27 sys.platform = 'darwin' 28 self.assertEqual(self.cc.rpath_foo(), '-L/foo') 29 sys.platform = 'hp-ux' 30 old_gcv = sysconfig.get_config_var 31 32 def gcv(v): 33 return 'xxx' 34 35 sysconfig.get_config_var = gcv 36 self.assertEqual(self.cc.rpath_foo(), ['+s', '-L/foo']) 37 38 def gcv(v): 39 return 'gcc' 40 41 sysconfig.get_config_var = gcv 42 self.assertEqual(self.cc.rpath_foo(), ['-Wl,+s', '-L/foo']) 43 44 def gcv(v): 45 return 'g++' 46 47 sysconfig.get_config_var = gcv 48 self.assertEqual(self.cc.rpath_foo(), ['-Wl,+s', '-L/foo']) 49 sysconfig.get_config_var = old_gcv 50 sys.platform = 'irix646' 51 self.assertEqual(self.cc.rpath_foo(), ['-rpath', '/foo']) 52 sys.platform = 'osf1V5' 53 self.assertEqual(self.cc.rpath_foo(), ['-rpath', '/foo']) 54 sys.platform = 'bar' 55 56 def gcv(v): 57 if v == 'CC': 58 return 'gcc' 59 if v == 'GNULD': 60 return 'yes' 61 62 sysconfig.get_config_var = gcv 63 self.assertEqual(self.cc.rpath_foo(), '-Wl,-R/foo') 64 sys.platform = 'bar' 65 66 def gcv(v): 67 if v == 'CC': 68 return 'gcc' 69 if v == 'GNULD': 70 return 'no' 71 72 sysconfig.get_config_var = gcv 73 self.assertEqual(self.cc.rpath_foo(), '-Wl,-R/foo') 74 sys.platform = 'bar' 75 76 def gcv(v): 77 if v == 'CC': 78 return 'x86_64-pc-linux-gnu-gcc-4.4.2' 79 if v == 'GNULD': 80 return 'yes' 81 82 sysconfig.get_config_var = gcv 83 self.assertEqual(self.cc.rpath_foo(), '-Wl,-R/foo') 84 sys.platform = 'bar' 85 86 def gcv(v): 87 if v == 'CC': 88 return 'cc' 89 if v == 'GNULD': 90 return 'yes' 91 92 sysconfig.get_config_var = gcv 93 self.assertEqual(self.cc.rpath_foo(), '-R/foo') 94 sys.platform = 'bar' 95 96 def gcv(v): 97 if v == 'CC': 98 return 'cc' 99 if v == 'GNULD': 100 return 'no' 101 102 sysconfig.get_config_var = gcv 103 self.assertEqual(self.cc.rpath_foo(), '-R/foo') 104 sys.platform = 'aix' 105 106 def gcv(v): 107 return 'xxx' 108 109 sysconfig.get_config_var = gcv 110 self.assertEqual(self.cc.rpath_foo(), '-R/foo') 111 112 113 def test_suite(): 114 return unittest.makeSuite(UnixCCompilerTestCase) 115 116 117 if __name__ == '__main__': 118 unittest.main(defaultTest='test_suite')