NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

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')