diff options
author | 2016-12-09 15:32:56 +0000 | |
---|---|---|
committer | 2016-12-09 15:52:53 +0000 | |
commit | 0ca9d7ee67bdf9d5e073bd7b4530c6fd0915beea (patch) | |
tree | b1d7d12ccaa3f7d448953159eb8addfa63575153 /src/test/java/com/google/devtools/build/lib | |
parent | d061a5d2c03031da11e8d5c126a69f55661dc224 (diff) |
Simplify propagation of linker params by replacing global_whole_archive with
individual --whole_archive/--no_whole_archive blocks.
--
PiperOrigin-RevId: 141555295
MOS_MIGRATED_REVID=141555295
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionTest.java | 7 | ||||
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/rules/cpp/LinkBuildVariablesTest.java | 62 |
2 files changed, 23 insertions, 46 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionTest.java index cd92b39d1a..03750a40e2 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionTest.java @@ -195,7 +195,7 @@ public class CppLinkActionTest extends BuildViewTestCase { final FeatureConfiguration featureConfiguration = getMockFeatureConfiguration(); ActionTester.runTest( - 128, + 64, new ActionCombinationFactory() { @Override @@ -219,9 +219,8 @@ public class CppLinkActionTest extends BuildViewTestCase { builder.setLinkStaticness(LinkStaticness.DYNAMIC); builder.setNativeDeps((i & 4) == 0); builder.setUseTestOnlyFlags((i & 8) == 0); - builder.setWholeArchive((i & 16) == 0); - builder.setFake((i & 32) == 0); - builder.setRuntimeSolibDir((i & 64) == 0 ? null : new PathFragment("so1")); + builder.setFake((i & 16) == 0); + builder.setRuntimeSolibDir((i & 32) == 0 ? null : new PathFragment("so1")); builder.setFeatureConfiguration(featureConfiguration); return builder.build(); 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 c5a5629eec..9089051b1f 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 @@ -23,6 +23,8 @@ import com.google.devtools.build.lib.analysis.util.AnalysisMock; import com.google.devtools.build.lib.analysis.util.BuildViewTestCase; import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.FeatureConfiguration; import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.Variables; +import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.Variables.LibraryToLinkValue; +import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.Variables.VariableValue; import com.google.devtools.build.lib.rules.cpp.Link.LinkTargetType; import java.util.List; import org.junit.Test; @@ -118,51 +120,27 @@ public class LinkBuildVariablesTest extends BuildViewTestCase { } @Test - public void testWholeArchiveBuildVariables() throws Exception { - scratch.file( - "x/BUILD", - "cc_binary(", - " name = 'bin.so',", - " srcs = ['a.cc'],", - " linkopts = ['-shared'],", - " linkstatic = 1", - ")"); - scratch.file("x/a.cc"); - - ConfiguredTarget target = getConfiguredTarget("//x:bin.so"); - Variables variables = getLinkBuildVariables(target, Link.LinkTargetType.EXECUTABLE); - List<String> variableValue = - getVariableValue(variables, CppLinkActionBuilder.GLOBAL_WHOLE_ARCHIVE_VARIABLE); - assertThat(variableValue).contains(""); - } + public void testLibrariesToLinkAreExported() throws Exception { + AnalysisMock.get().ccSupport().setupCrosstool(mockToolsConfig); + useConfiguration(); - /** - * Tests that "--whole_archive" is not propagated twice through whole archive inputs and global - * whole archive. - */ - @Test - public void testGlobalWholeArchiveOrWholeArchiveBuildVariables() throws Exception { - scratch.file( - "x/BUILD", - "cc_binary(", - " name = 'bin',", - " srcs = ['a.cc', 'b.lo'],", - " linkopts = ['-shared'],", - " linkstatic = 1,", - ")"); + scratch.file("x/BUILD", "cc_library(", " name = 'foo',", " srcs = ['a.cc'],", ")"); scratch.file("x/a.cc"); - scratch.file("x/b.lo"); - ConfiguredTarget target = getConfiguredTarget("//x:bin"); - Variables variables = getLinkBuildVariables(target, Link.LinkTargetType.EXECUTABLE); - List<String> globalWholeArchiveVariableValue = - getVariableValue(variables, CppLinkActionBuilder.GLOBAL_WHOLE_ARCHIVE_VARIABLE); - List<String> wholeArchiveInputVariableValue = - getVariableValue( - variables, CppLinkActionBuilder.WHOLE_ARCHIVE_LINKER_INPUT_PARAMS_VARIABLE); - assertThat(globalWholeArchiveVariableValue).contains(""); - assertThat(wholeArchiveInputVariableValue).isEmpty(); - ; + ConfiguredTarget target = getConfiguredTarget("//x:foo"); + Variables variables = getLinkBuildVariables(target, LinkTargetType.DYNAMIC_LIBRARY); + VariableValue librariesToLinkSequence = variables.getVariable("libraries_to_link"); + assertThat(librariesToLinkSequence).isNotNull(); + Iterable<? extends VariableValue> librariesToLink = + librariesToLinkSequence.getSequenceValue("libraries_to_link"); + assertThat(librariesToLink).hasSize(1); + VariableValue nameValue = librariesToLink.iterator().next().getFieldValue( + "librariesToLink", LibraryToLinkValue.NAMES_FIELD_NAME); + assertThat(nameValue).isNotNull(); + Iterable<? extends VariableValue> names = nameValue.getSequenceValue("names"); + assertThat(names).isNotNull(); + assertThat(names).hasSize(1); + assertThat(names.iterator().next().getStringValue("names")).matches(".*a\\..*o"); } @Test |