aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib
diff options
context:
space:
mode:
authorGravatar Marcel Hlopko <hlopko@google.com>2016-12-09 15:32:56 +0000
committerGravatar Irina Iancu <elenairina@google.com>2016-12-09 15:52:53 +0000
commit0ca9d7ee67bdf9d5e073bd7b4530c6fd0915beea (patch)
treeb1d7d12ccaa3f7d448953159eb8addfa63575153 /src/test/java/com/google/devtools/build/lib
parentd061a5d2c03031da11e8d5c126a69f55661dc224 (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.java7
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/cpp/LinkBuildVariablesTest.java62
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