aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/py
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/py')
-rw-r--r--src/test/py/bazel/bazel_windows_dynamic_link_test.py50
1 files changed, 47 insertions, 3 deletions
diff --git a/src/test/py/bazel/bazel_windows_dynamic_link_test.py b/src/test/py/bazel/bazel_windows_dynamic_link_test.py
index e6652ff157..2a148b4f13 100644
--- a/src/test/py/bazel/bazel_windows_dynamic_link_test.py
+++ b/src/test/py/bazel/bazel_windows_dynamic_link_test.py
@@ -217,9 +217,7 @@ class BazelWindowsDynamicLinkTest(test_base.TestBase):
])
bazel_bin = self.getBazelInfo('bazel-bin')
- # We dynamically link to msvcrt by setting USE_DYNAMIC_CRT=1
- exit_code, _, stderr = self.RunBazel(
- ['build', '//main:main', '--action_env=USE_DYNAMIC_CRT=1'])
+ exit_code, _, stderr = self.RunBazel(['build', '//main:main'])
self.AssertExitCode(exit_code, 0, stderr)
# Test if libA.so and libB.so are copied to the directory of main.exe
@@ -289,6 +287,52 @@ class BazelWindowsDynamicLinkTest(test_base.TestBase):
'actions:',
''.join(stderr))
+ def testDynamicLinkingMSVCRT(self):
+ self.createProjectFiles()
+
+ # By default, it should link to msvcrt dynamically.
+ exit_code, _, stderr = self.RunBazel(
+ ['build', '//:A', '--output_groups=dynamic_library', '-s'])
+ self.AssertExitCode(exit_code, 0, stderr)
+ self.assertIn('/MD', ''.join(stderr))
+ self.assertIn('/DEFAULTLIB:msvcrt.lib', ''.join(stderr))
+ self.assertNotIn('/MT', ''.join(stderr))
+ self.assertNotIn('/DEFAULTLIB:libcmt.lib', ''.join(stderr))
+
+ # Test build in debug mode.
+ exit_code, _, stderr = self.RunBazel(
+ ['build', '-c', 'dbg', '//:A', '--output_groups=dynamic_library', '-s'])
+ self.AssertExitCode(exit_code, 0, stderr)
+ self.assertIn('/MDd', ''.join(stderr))
+ self.assertIn('/DEFAULTLIB:msvcrtd.lib', ''.join(stderr))
+ self.assertNotIn('/MTd', ''.join(stderr))
+ self.assertNotIn('/DEFAULTLIB:libcmtd.lib', ''.join(stderr))
+
+ def testStaticLinkingMSVCRT(self):
+ self.createProjectFiles()
+
+ # With static_link_msvcrt feature, it should link to msvcrt statically.
+ exit_code, _, stderr = self.RunBazel([
+ 'build', '//:A', '--output_groups=dynamic_library',
+ '--features=static_link_msvcrt', '-s'
+ ])
+ self.AssertExitCode(exit_code, 0, stderr)
+ self.assertNotIn('/MD', ''.join(stderr))
+ self.assertNotIn('/DEFAULTLIB:msvcrt.lib', ''.join(stderr))
+ self.assertIn('/MT', ''.join(stderr))
+ self.assertIn('/DEFAULTLIB:libcmt.lib', ''.join(stderr))
+
+ # Test build in debug mode.
+ exit_code, _, stderr = self.RunBazel([
+ 'build', '-c', 'dbg', '//:A', '--output_groups=dynamic_library',
+ '--features=static_link_msvcrt', '-s'
+ ])
+ self.AssertExitCode(exit_code, 0, stderr)
+ self.assertNotIn('/MDd', ''.join(stderr))
+ self.assertNotIn('/DEFAULTLIB:msvcrtd.lib', ''.join(stderr))
+ self.assertIn('/MTd', ''.join(stderr))
+ self.assertIn('/DEFAULTLIB:libcmtd.lib', ''.join(stderr))
+
if __name__ == '__main__':
unittest.main()