mirror of
https://github.com/python/cpython.git
synced 2025-08-04 17:08:35 +00:00
Merge from 3.5.
This commit is contained in:
commit
334b4a3403
15 changed files with 178 additions and 54 deletions
|
@ -16,22 +16,73 @@ class msvccompilerTestCase(support.TempdirManager,
|
|||
unittest.TestCase):
|
||||
|
||||
def test_no_compiler(self):
|
||||
import distutils._msvccompiler as _msvccompiler
|
||||
# makes sure query_vcvarsall raises
|
||||
# a DistutilsPlatformError if the compiler
|
||||
# is not found
|
||||
from distutils._msvccompiler import _get_vc_env
|
||||
def _find_vcvarsall():
|
||||
return None
|
||||
def _find_vcvarsall(plat_spec):
|
||||
return None, None
|
||||
|
||||
import distutils._msvccompiler as _msvccompiler
|
||||
old_find_vcvarsall = _msvccompiler._find_vcvarsall
|
||||
_msvccompiler._find_vcvarsall = _find_vcvarsall
|
||||
try:
|
||||
self.assertRaises(DistutilsPlatformError, _get_vc_env,
|
||||
self.assertRaises(DistutilsPlatformError,
|
||||
_msvccompiler._get_vc_env,
|
||||
'wont find this version')
|
||||
finally:
|
||||
_msvccompiler._find_vcvarsall = old_find_vcvarsall
|
||||
|
||||
def test_compiler_options(self):
|
||||
import distutils._msvccompiler as _msvccompiler
|
||||
# suppress path to vcruntime from _find_vcvarsall to
|
||||
# check that /MT is added to compile options
|
||||
old_find_vcvarsall = _msvccompiler._find_vcvarsall
|
||||
def _find_vcvarsall(plat_spec):
|
||||
return old_find_vcvarsall(plat_spec)[0], None
|
||||
_msvccompiler._find_vcvarsall = _find_vcvarsall
|
||||
try:
|
||||
compiler = _msvccompiler.MSVCCompiler()
|
||||
compiler.initialize()
|
||||
|
||||
self.assertIn('/MT', compiler.compile_options)
|
||||
self.assertNotIn('/MD', compiler.compile_options)
|
||||
finally:
|
||||
_msvccompiler._find_vcvarsall = old_find_vcvarsall
|
||||
|
||||
def test_vcruntime_copy(self):
|
||||
import distutils._msvccompiler as _msvccompiler
|
||||
# force path to a known file - it doesn't matter
|
||||
# what we copy as long as its name is not in
|
||||
# _msvccompiler._BUNDLED_DLLS
|
||||
old_find_vcvarsall = _msvccompiler._find_vcvarsall
|
||||
def _find_vcvarsall(plat_spec):
|
||||
return old_find_vcvarsall(plat_spec)[0], __file__
|
||||
_msvccompiler._find_vcvarsall = _find_vcvarsall
|
||||
try:
|
||||
tempdir = self.mkdtemp()
|
||||
compiler = _msvccompiler.MSVCCompiler()
|
||||
compiler.initialize()
|
||||
compiler._copy_vcruntime(tempdir)
|
||||
|
||||
self.assertTrue(os.path.isfile(os.path.join(
|
||||
tempdir, os.path.basename(__file__))))
|
||||
finally:
|
||||
_msvccompiler._find_vcvarsall = old_find_vcvarsall
|
||||
|
||||
def test_vcruntime_skip_copy(self):
|
||||
import distutils._msvccompiler as _msvccompiler
|
||||
|
||||
tempdir = self.mkdtemp()
|
||||
compiler = _msvccompiler.MSVCCompiler()
|
||||
compiler.initialize()
|
||||
dll = compiler._vcruntime_redist
|
||||
self.assertTrue(os.path.isfile(dll))
|
||||
|
||||
compiler._copy_vcruntime(tempdir)
|
||||
|
||||
self.assertFalse(os.path.isfile(os.path.join(
|
||||
tempdir, os.path.basename(dll))))
|
||||
|
||||
def test_suite():
|
||||
return unittest.makeSuite(msvccompilerTestCase)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue