aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test
diff options
context:
space:
mode:
authorGravatar Marcel Hlopko <hlopko@google.com>2016-10-24 09:26:44 +0000
committerGravatar John Cater <jcater@google.com>2016-10-24 19:29:54 +0000
commitabb0b633339ef76bf19a1e5af8477d42d13151d8 (patch)
treede92440968da17f7c9986dc3573cb7ab6ab52671 /src/test
parent8ec704b523385f49e70a0807a5ee7f37d6360a0b (diff)
Move -l/-L link opts to FeatureConfiguration
This cl moves -l/-L link opts generation from Java to FeatureConfiguration making it possible to alter the flags in CROSSTOOL. Change-Id: I1ea7501435ab7e62992e1e9b0cb7f5e22d52c521 -- MOS_MIGRATED_REVID=137004610
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/cpp/LinkBuildVariablesTest.java40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/LinkBuildVariablesTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/LinkBuildVariablesTest.java
index f3d488fe1f..bdca59095e 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/cpp/LinkBuildVariablesTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/LinkBuildVariablesTest.java
@@ -163,6 +163,46 @@ public class LinkBuildVariablesTest extends BuildViewTestCase {
;
}
+ /**
+ * TODO(pcloudy): Add test for testing that necessary build variables are populated when
+ * alwayslink=1.
+ */
+
+ /**
+ * Tests that librarySearchDirectories, dynamicLibrariesToLink, and interfaceLibrariesToLink are
+ * exposed.
+ */
+ @Test
+ public void testLinkingLibrariesFlags() throws Exception {
+ scratch.file(
+ "app/BUILD",
+ "cc_binary(",
+ " name = 'foo',",
+ " srcs = ['foo.cc', 'libbar.so'],",
+ " deps = ['//baz:qux'],",
+ " linkstatic = 0,",
+ ")");
+ scratch.file("baz/BUILD", "cc_library(", " name = 'qux',", " srcs = ['qux.cc'],", ")");
+ scratch.file("app/foo.cc");
+ scratch.file("app/libbar.so");
+ scratch.file("baz/qux.cc");
+
+ ConfiguredTarget target = getConfiguredTarget("//app:foo");
+ Variables variables = getLinkBuildVariables(target, LinkTargetType.EXECUTABLE);
+ List<String> librarySearchDirectories =
+ getVariableValue(variables, CppLinkActionBuilder.LIBRARY_SEARCH_DIRECTORIES_VARIABLE);
+ List<String> dynamicLibrariesToLink =
+ getVariableValue(variables, CppLinkActionBuilder.DYNAMIC_LIBRARIES_TO_LINK_VARIABLE);
+ List<String> interfaceLibrariesToLink =
+ getVariableValue(variables, CppLinkActionBuilder.INTERFACE_LIBRARIES_TO_LINK_VARIABLE);
+
+ assertThat(librarySearchDirectories).hasSize(2);
+ assertThat(librarySearchDirectories.get(0)).matches(".*app.*foo.*");
+ assertThat(dynamicLibrariesToLink).containsExactly("bar");
+ assertThat(Iterables.getOnlyElement(interfaceLibrariesToLink))
+ .matches(".*libbaz.*libqux.ifso");
+ }
+
@Test
public void testInterfaceLibraryBuildingVariablesWhenGenerationPossible() throws Exception {
// Make sure the interface shared object generation is enabled in the configuration