]> git.proxmox.com Git - mirror_edk2.git/blame - AppPkg/Applications/Python/Python-2.7.2/Lib/distutils/tests/test_unixccompiler.py
EmbeddedPkg: Extend NvVarStoreFormattedLib LIBRARY_CLASS
[mirror_edk2.git] / AppPkg / Applications / Python / Python-2.7.2 / Lib / distutils / tests / test_unixccompiler.py
CommitLineData
4710c53d 1"""Tests for distutils.unixccompiler."""\r
2import sys\r
3import unittest\r
4from test.test_support import run_unittest\r
5\r
6from distutils import sysconfig\r
7from distutils.unixccompiler import UnixCCompiler\r
8\r
9class UnixCCompilerTestCase(unittest.TestCase):\r
10\r
11 def setUp(self):\r
12 self._backup_platform = sys.platform\r
13 self._backup_get_config_var = sysconfig.get_config_var\r
14 class CompilerWrapper(UnixCCompiler):\r
15 def rpath_foo(self):\r
16 return self.runtime_library_dir_option('/foo')\r
17 self.cc = CompilerWrapper()\r
18\r
19 def tearDown(self):\r
20 sys.platform = self._backup_platform\r
21 sysconfig.get_config_var = self._backup_get_config_var\r
22\r
23 def test_runtime_libdir_option(self):\r
24\r
25 # not tested under windows\r
26 if sys.platform == 'win32':\r
27 return\r
28\r
29 # Issue#5900\r
30 #\r
31 # Ensure RUNPATH is added to extension modules with RPATH if\r
32 # GNU ld is used\r
33\r
34 # darwin\r
35 sys.platform = 'darwin'\r
36 self.assertEqual(self.cc.rpath_foo(), '-L/foo')\r
37\r
38 # hp-ux\r
39 sys.platform = 'hp-ux'\r
40 old_gcv = sysconfig.get_config_var\r
41 def gcv(v):\r
42 return 'xxx'\r
43 sysconfig.get_config_var = gcv\r
44 self.assertEqual(self.cc.rpath_foo(), ['+s', '-L/foo'])\r
45\r
46 def gcv(v):\r
47 return 'gcc'\r
48 sysconfig.get_config_var = gcv\r
49 self.assertEqual(self.cc.rpath_foo(), ['-Wl,+s', '-L/foo'])\r
50\r
51 def gcv(v):\r
52 return 'g++'\r
53 sysconfig.get_config_var = gcv\r
54 self.assertEqual(self.cc.rpath_foo(), ['-Wl,+s', '-L/foo'])\r
55\r
56 sysconfig.get_config_var = old_gcv\r
57\r
58 # irix646\r
59 sys.platform = 'irix646'\r
60 self.assertEqual(self.cc.rpath_foo(), ['-rpath', '/foo'])\r
61\r
62 # osf1V5\r
63 sys.platform = 'osf1V5'\r
64 self.assertEqual(self.cc.rpath_foo(), ['-rpath', '/foo'])\r
65\r
66 # GCC GNULD\r
67 sys.platform = 'bar'\r
68 def gcv(v):\r
69 if v == 'CC':\r
70 return 'gcc'\r
71 elif v == 'GNULD':\r
72 return 'yes'\r
73 sysconfig.get_config_var = gcv\r
74 self.assertEqual(self.cc.rpath_foo(), '-Wl,-R/foo')\r
75\r
76 # GCC non-GNULD\r
77 sys.platform = 'bar'\r
78 def gcv(v):\r
79 if v == 'CC':\r
80 return 'gcc'\r
81 elif v == 'GNULD':\r
82 return 'no'\r
83 sysconfig.get_config_var = gcv\r
84 self.assertEqual(self.cc.rpath_foo(), '-Wl,-R/foo')\r
85\r
86 # GCC GNULD with fully qualified configuration prefix\r
87 # see #7617\r
88 sys.platform = 'bar'\r
89 def gcv(v):\r
90 if v == 'CC':\r
91 return 'x86_64-pc-linux-gnu-gcc-4.4.2'\r
92 elif v == 'GNULD':\r
93 return 'yes'\r
94 sysconfig.get_config_var = gcv\r
95 self.assertEqual(self.cc.rpath_foo(), '-Wl,-R/foo')\r
96\r
97\r
98 # non-GCC GNULD\r
99 sys.platform = 'bar'\r
100 def gcv(v):\r
101 if v == 'CC':\r
102 return 'cc'\r
103 elif v == 'GNULD':\r
104 return 'yes'\r
105 sysconfig.get_config_var = gcv\r
106 self.assertEqual(self.cc.rpath_foo(), '-R/foo')\r
107\r
108 # non-GCC non-GNULD\r
109 sys.platform = 'bar'\r
110 def gcv(v):\r
111 if v == 'CC':\r
112 return 'cc'\r
113 elif v == 'GNULD':\r
114 return 'no'\r
115 sysconfig.get_config_var = gcv\r
116 self.assertEqual(self.cc.rpath_foo(), '-R/foo')\r
117\r
118 # AIX C/C++ linker\r
119 sys.platform = 'aix'\r
120 def gcv(v):\r
121 return 'xxx'\r
122 sysconfig.get_config_var = gcv\r
123 self.assertEqual(self.cc.rpath_foo(), '-R/foo')\r
124\r
125\r
126def test_suite():\r
127 return unittest.makeSuite(UnixCCompilerTestCase)\r
128\r
129if __name__ == "__main__":\r
130 run_unittest(test_suite())\r