diff options
Diffstat (limited to 'src/test/py')
-rw-r--r-- | src/test/py/bazel/bazel_windows_dynamic_link_test.py | 50 |
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() |