Mercurial > cpython-lru_cache-weakref
annotate Lib/distutils/tests/test_ccompiler.py @ 79675:c0a2294de787 2.7
Issue #16199: Backport 2to3 typo fix from 3.2.
| author | Chris Jerdonek <chris.jerdonek@gmail.com> |
|---|---|
| date | Thu, 11 Oct 2012 16:15:46 -0700 |
| parents | 6240ff5dfebe |
| children |
| rev | line source |
|---|---|
|
54936
66cc50890894
Merged revisions 73445 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
1 """Tests for distutils.ccompiler.""" |
|
66cc50890894
Merged revisions 73445 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
2 import os |
|
66cc50890894
Merged revisions 73445 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
3 import unittest |
|
56152
2df8bedec6d3
improved distutils test coverage: now the DEBUG mode is covered too (will help fix the issue #6954 in py3k branch)
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54936
diff
changeset
|
4 from test.test_support import captured_stdout |
|
54936
66cc50890894
Merged revisions 73445 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
5 |
|
58450
fa69e891edf4
taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56152
diff
changeset
|
6 from distutils.ccompiler import (gen_lib_options, CCompiler, |
|
74871
6240ff5dfebe
Issue #13994: Earler partial revert of Distutils enhancements in 2.7
Ned Deily <nad@acm.org>
parents:
66348
diff
changeset
|
7 get_default_compiler) |
|
6240ff5dfebe
Issue #13994: Earler partial revert of Distutils enhancements in 2.7
Ned Deily <nad@acm.org>
parents:
66348
diff
changeset
|
8 from distutils.sysconfig import customize_compiler |
|
56152
2df8bedec6d3
improved distutils test coverage: now the DEBUG mode is covered too (will help fix the issue #6954 in py3k branch)
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54936
diff
changeset
|
9 from distutils import debug |
|
58450
fa69e891edf4
taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56152
diff
changeset
|
10 from distutils.tests import support |
|
54936
66cc50890894
Merged revisions 73445 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
11 |
|
66cc50890894
Merged revisions 73445 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
12 class FakeCompiler(object): |
|
66cc50890894
Merged revisions 73445 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
13 def library_dir_option(self, dir): |
|
66cc50890894
Merged revisions 73445 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
14 return "-L" + dir |
|
66cc50890894
Merged revisions 73445 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
15 |
|
66cc50890894
Merged revisions 73445 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
16 def runtime_library_dir_option(self, dir): |
|
66cc50890894
Merged revisions 73445 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
17 return ["-cool", "-R" + dir] |
|
66cc50890894
Merged revisions 73445 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
18 |
|
66cc50890894
Merged revisions 73445 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
19 def find_library_file(self, dirs, lib, debug=0): |
|
66cc50890894
Merged revisions 73445 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
20 return 'found' |
|
66cc50890894
Merged revisions 73445 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
21 |
|
66cc50890894
Merged revisions 73445 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
22 def library_option(self, lib): |
|
66cc50890894
Merged revisions 73445 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
23 return "-l" + lib |
|
66cc50890894
Merged revisions 73445 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
24 |
|
58450
fa69e891edf4
taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56152
diff
changeset
|
25 class CCompilerTestCase(support.EnvironGuard, unittest.TestCase): |
|
54936
66cc50890894
Merged revisions 73445 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
26 |
|
66cc50890894
Merged revisions 73445 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
27 def test_gen_lib_options(self): |
|
66cc50890894
Merged revisions 73445 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
28 compiler = FakeCompiler() |
|
66cc50890894
Merged revisions 73445 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
29 libdirs = ['lib1', 'lib2'] |
|
66cc50890894
Merged revisions 73445 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
30 runlibdirs = ['runlib1'] |
|
66cc50890894
Merged revisions 73445 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
31 libs = [os.path.join('dir', 'name'), 'name2'] |
|
66cc50890894
Merged revisions 73445 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
32 |
|
66cc50890894
Merged revisions 73445 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
33 opts = gen_lib_options(compiler, libdirs, runlibdirs, libs) |
|
66cc50890894
Merged revisions 73445 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
34 wanted = ['-Llib1', '-Llib2', '-cool', '-Rrunlib1', 'found', |
|
66cc50890894
Merged revisions 73445 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
35 '-lname2'] |
|
66348
614c84670c63
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
58450
diff
changeset
|
36 self.assertEqual(opts, wanted) |
|
54936
66cc50890894
Merged revisions 73445 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
37 |
|
56152
2df8bedec6d3
improved distutils test coverage: now the DEBUG mode is covered too (will help fix the issue #6954 in py3k branch)
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54936
diff
changeset
|
38 def test_debug_print(self): |
|
2df8bedec6d3
improved distutils test coverage: now the DEBUG mode is covered too (will help fix the issue #6954 in py3k branch)
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54936
diff
changeset
|
39 |
|
2df8bedec6d3
improved distutils test coverage: now the DEBUG mode is covered too (will help fix the issue #6954 in py3k branch)
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54936
diff
changeset
|
40 class MyCCompiler(CCompiler): |
|
2df8bedec6d3
improved distutils test coverage: now the DEBUG mode is covered too (will help fix the issue #6954 in py3k branch)
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54936
diff
changeset
|
41 executables = {} |
|
2df8bedec6d3
improved distutils test coverage: now the DEBUG mode is covered too (will help fix the issue #6954 in py3k branch)
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54936
diff
changeset
|
42 |
|
2df8bedec6d3
improved distutils test coverage: now the DEBUG mode is covered too (will help fix the issue #6954 in py3k branch)
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54936
diff
changeset
|
43 compiler = MyCCompiler() |
|
2df8bedec6d3
improved distutils test coverage: now the DEBUG mode is covered too (will help fix the issue #6954 in py3k branch)
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54936
diff
changeset
|
44 with captured_stdout() as stdout: |
|
2df8bedec6d3
improved distutils test coverage: now the DEBUG mode is covered too (will help fix the issue #6954 in py3k branch)
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54936
diff
changeset
|
45 compiler.debug_print('xxx') |
|
2df8bedec6d3
improved distutils test coverage: now the DEBUG mode is covered too (will help fix the issue #6954 in py3k branch)
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54936
diff
changeset
|
46 stdout.seek(0) |
|
66348
614c84670c63
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
58450
diff
changeset
|
47 self.assertEqual(stdout.read(), '') |
|
56152
2df8bedec6d3
improved distutils test coverage: now the DEBUG mode is covered too (will help fix the issue #6954 in py3k branch)
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54936
diff
changeset
|
48 |
|
2df8bedec6d3
improved distutils test coverage: now the DEBUG mode is covered too (will help fix the issue #6954 in py3k branch)
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54936
diff
changeset
|
49 debug.DEBUG = True |
|
2df8bedec6d3
improved distutils test coverage: now the DEBUG mode is covered too (will help fix the issue #6954 in py3k branch)
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54936
diff
changeset
|
50 try: |
|
2df8bedec6d3
improved distutils test coverage: now the DEBUG mode is covered too (will help fix the issue #6954 in py3k branch)
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54936
diff
changeset
|
51 with captured_stdout() as stdout: |
|
2df8bedec6d3
improved distutils test coverage: now the DEBUG mode is covered too (will help fix the issue #6954 in py3k branch)
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54936
diff
changeset
|
52 compiler.debug_print('xxx') |
|
2df8bedec6d3
improved distutils test coverage: now the DEBUG mode is covered too (will help fix the issue #6954 in py3k branch)
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54936
diff
changeset
|
53 stdout.seek(0) |
|
66348
614c84670c63
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
58450
diff
changeset
|
54 self.assertEqual(stdout.read(), 'xxx\n') |
|
56152
2df8bedec6d3
improved distutils test coverage: now the DEBUG mode is covered too (will help fix the issue #6954 in py3k branch)
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54936
diff
changeset
|
55 finally: |
|
2df8bedec6d3
improved distutils test coverage: now the DEBUG mode is covered too (will help fix the issue #6954 in py3k branch)
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54936
diff
changeset
|
56 debug.DEBUG = False |
|
2df8bedec6d3
improved distutils test coverage: now the DEBUG mode is covered too (will help fix the issue #6954 in py3k branch)
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54936
diff
changeset
|
57 |
|
58450
fa69e891edf4
taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56152
diff
changeset
|
58 def test_customize_compiler(self): |
|
fa69e891edf4
taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56152
diff
changeset
|
59 |
|
fa69e891edf4
taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56152
diff
changeset
|
60 # not testing if default compiler is not unix |
|
fa69e891edf4
taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56152
diff
changeset
|
61 if get_default_compiler() != 'unix': |
|
fa69e891edf4
taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56152
diff
changeset
|
62 return |
|
fa69e891edf4
taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56152
diff
changeset
|
63 |
|
fa69e891edf4
taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56152
diff
changeset
|
64 os.environ['AR'] = 'my_ar' |
|
fa69e891edf4
taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56152
diff
changeset
|
65 os.environ['ARFLAGS'] = '-arflags' |
|
fa69e891edf4
taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56152
diff
changeset
|
66 |
|
fa69e891edf4
taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56152
diff
changeset
|
67 # make sure AR gets caught |
|
fa69e891edf4
taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56152
diff
changeset
|
68 class compiler: |
|
fa69e891edf4
taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56152
diff
changeset
|
69 compiler_type = 'unix' |
|
fa69e891edf4
taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56152
diff
changeset
|
70 |
|
fa69e891edf4
taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56152
diff
changeset
|
71 def set_executables(self, **kw): |
|
fa69e891edf4
taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56152
diff
changeset
|
72 self.exes = kw |
|
fa69e891edf4
taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56152
diff
changeset
|
73 |
|
fa69e891edf4
taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56152
diff
changeset
|
74 comp = compiler() |
|
fa69e891edf4
taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56152
diff
changeset
|
75 customize_compiler(comp) |
|
66348
614c84670c63
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
58450
diff
changeset
|
76 self.assertEqual(comp.exes['archiver'], 'my_ar -arflags') |
|
58450
fa69e891edf4
taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56152
diff
changeset
|
77 |
|
54936
66cc50890894
Merged revisions 73445 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
78 def test_suite(): |
|
66cc50890894
Merged revisions 73445 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
79 return unittest.makeSuite(CCompilerTestCase) |
|
66cc50890894
Merged revisions 73445 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
80 |
|
66cc50890894
Merged revisions 73445 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
81 if __name__ == "__main__": |
|
66cc50890894
Merged revisions 73445 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
82 unittest.main(defaultTest="test_suite") |
