summaryrefslogtreecommitdiffstats
path: root/Lib/distutils/tests
diff options
context:
space:
mode:
authorSteve Dower <steve.dower@microsoft.com>2015-09-09 04:39:01 (GMT)
committerSteve Dower <steve.dower@microsoft.com>2015-09-09 04:39:01 (GMT)
commitfcbe1df4afe10eed49e97bf08ba748f9140a5bf3 (patch)
tree24df31883a5d686b9536fa7ad0db07616d2c7aa1 /Lib/distutils/tests
parent0130e2991d901d43237d21df47c2adc8222233ba (diff)
downloadcpython-fcbe1df4afe10eed49e97bf08ba748f9140a5bf3.zip
cpython-fcbe1df4afe10eed49e97bf08ba748f9140a5bf3.tar.gz
cpython-fcbe1df4afe10eed49e97bf08ba748f9140a5bf3.tar.bz2
Issue #25027: Reverts partial-static build options and adds vcruntime140.dll to Windows installation.
Diffstat (limited to 'Lib/distutils/tests')
-rw-r--r--Lib/distutils/tests/test_msvccompiler.py58
1 files changed, 53 insertions, 5 deletions
diff --git a/Lib/distutils/tests/test_msvccompiler.py b/Lib/distutils/tests/test_msvccompiler.py
index 1f88907..0b8a69f 100644
--- a/Lib/distutils/tests/test_msvccompiler.py
+++ b/Lib/distutils/tests/test_msvccompiler.py
@@ -3,6 +3,8 @@ import sys
import unittest
import os
+import distutils._msvccompiler as _msvccompiler
+
from distutils.errors import DistutilsPlatformError
from distutils.tests import support
from test.support import run_unittest
@@ -19,19 +21,65 @@ class msvccompilerTestCase(support.TempdirManager,
# 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):
+ # 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):
+ # 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):
+ 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)