aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/rules
diff options
context:
space:
mode:
authorGravatar Yun Peng <pcloudy@google.com>2017-09-20 10:25:48 +0200
committerGravatar László Csomor <laszlocsomor@google.com>2017-09-20 11:59:04 +0200
commit481657d6149b3c68b893ad8221ac1bccccf1060d (patch)
treedb33e89dbfd5f9df16143de5553cbaf1ab638159 /src/test/java/com/google/devtools/build/lib/rules
parente28b772d85a463e4fe154767d0d82c0fb9e63c3d (diff)
Windows: Make dynamic libraries available to binary at runtime
When copy_dynamic_libraries_to_binary is enabled, we copy the shared libraries required by the binary to the binary's directory. Bazel will throw errors if there are confilct actions generating the same artifacts. Change-Id: I09a5a599ca0ec7a67efd49d5aa89481450fa4e90 PiperOrigin-RevId: 169364498
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/rules')
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java
index 98ba0c223f..0770ead00d 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java
@@ -1186,6 +1186,52 @@ public class CcLibraryConfiguredTargetTest extends BuildViewTestCase {
}
@Test
+ public void testCcLinkParamsHasExecutionDynamicLibraries() throws Exception {
+ AnalysisMock.get()
+ .ccSupport()
+ .setupCrosstool(
+ mockToolsConfig, MockCcSupport.COPY_DYNAMIC_LIBRARIES_TO_BINARY_CONFIGURATION);
+ useConfiguration("--cpu=k8", "--features=copy_dynamic_libraries_to_binary");
+ ConfiguredTarget target =
+ scratchConfiguredTarget("a", "foo", "cc_library(name = 'foo', srcs = ['foo.cc'])");
+ Iterable<Artifact> libraries =
+ target
+ .get(CcLinkParamsInfo.PROVIDER)
+ .getCcLinkParams(false, true)
+ .getExecutionDynamicLibraries();
+ assertThat(artifactsToStrings(libraries)).doesNotContain("bin a/libfoo.ifso");
+ assertThat(artifactsToStrings(libraries)).contains("bin a/libfoo.so");
+ }
+
+ @Test
+ public void testCcLinkParamsHasExecutionDynamicLibrariesWithoutCopyFeature() throws Exception {
+ useConfiguration("--cpu=k8");
+ ConfiguredTarget target =
+ scratchConfiguredTarget("a", "foo", "cc_library(name = 'foo', srcs = ['foo.cc'])");
+ Iterable<Artifact> libraries =
+ target
+ .get(CcLinkParamsInfo.PROVIDER)
+ .getCcLinkParams(false, true)
+ .getExecutionDynamicLibraries();
+ assertThat(artifactsToStrings(libraries)).doesNotContain("bin _solib_k8/liba_Slibfoo.ifso");
+ assertThat(artifactsToStrings(libraries)).contains("bin _solib_k8/liba_Slibfoo.so");
+ }
+
+ @Test
+ public void testCcLinkParamsDoNotHasExecutionDynamicLibraries() throws Exception {
+ useConfiguration("--cpu=k8");
+ ConfiguredTarget target =
+ scratchConfiguredTarget(
+ "a", "foo", "cc_library(name = 'foo', srcs = ['foo.cc'], linkstatic=1)");
+ Iterable<Artifact> libraries =
+ target
+ .get(CcLinkParamsInfo.PROVIDER)
+ .getCcLinkParams(false, true)
+ .getExecutionDynamicLibraries();
+ assertThat(artifactsToStrings(libraries)).isEmpty();
+ }
+
+ @Test
public void forbidBuildingAndWrappingSameLibraryIdentifier() throws Exception {
useConfiguration("--cpu=k8");
checkError(