diff options
author | 2016-10-24 09:26:44 +0000 | |
---|---|---|
committer | 2016-10-24 19:29:54 +0000 | |
commit | abb0b633339ef76bf19a1e5af8477d42d13151d8 (patch) | |
tree | de92440968da17f7c9986dc3573cb7ab6ab52671 /src/test | |
parent | 8ec704b523385f49e70a0807a5ee7f37d6360a0b (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.java | 40 |
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 |