aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/rules
diff options
context:
space:
mode:
authorGravatar hlopko <hlopko@google.com>2017-09-19 15:42:58 +0200
committerGravatar László Csomor <laszlocsomor@google.com>2017-09-19 17:17:56 +0200
commit6434af053cfffa38909bc86afe69e33b573b6179 (patch)
treecb6ca52ddada1f718089d4ff2e21d5d3eb79eee3 /src/test/java/com/google/devtools/build/lib/rules
parente85b5a7a7c4968ff3451573b4b8ca2a52a3e9961 (diff)
Do not duplicate build variables, reuse variables from cc toolchain
Before this cl each linking and compilation action would contain a full copy of all build variables. However, some build variables can be reused, for the memory consumption benefit. With this cl, we contruct a Variables instance in the CcToolchain, and make it a parent of all per-linking and per-compilation variables. RELNOTES: None. PiperOrigin-RevId: 169233756
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/CcToolchainProviderTest.java5
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/cpp/CompileBuildVariablesTest.java16
2 files changed, 19 insertions, 2 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProviderTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProviderTest.java
index 20891db1b5..bc93ba92b2 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProviderTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProviderTest.java
@@ -20,6 +20,7 @@ import com.google.common.testing.EqualsTester;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.collect.nestedset.Order;
+import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.Variables;
import com.google.devtools.build.lib.util.Pair;
import com.google.devtools.build.lib.vfs.PathFragment;
import org.junit.Test;
@@ -54,7 +55,7 @@ public class CcToolchainProviderTest {
CppCompilationContext.EMPTY,
false,
false,
- ImmutableMap.<String, String>of(),
+ Variables.EMPTY,
ImmutableList.<Artifact>of(),
NestedSetBuilder.<Pair<String, String>>emptySet(Order.COMPILE_ORDER),
null,
@@ -84,7 +85,7 @@ public class CcToolchainProviderTest {
CppCompilationContext.EMPTY,
false,
false,
- ImmutableMap.<String, String>of(),
+ Variables.EMPTY,
ImmutableList.<Artifact>of(),
NestedSetBuilder.<Pair<String, String>>emptySet(Order.COMPILE_ORDER),
null,
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CompileBuildVariablesTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CompileBuildVariablesTest.java
index 20db405131..89b7a3b992 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CompileBuildVariablesTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CompileBuildVariablesTest.java
@@ -124,4 +124,20 @@ public class CompileBuildVariablesTest extends BuildViewTestCase {
Variables.toStringList(variables, CppModel.USER_COMPILE_FLAGS_VARIABLE_NAME);
assertThat(copts).containsExactly("-foo").inOrder();
}
+
+ @Test
+ public void testPresenceOfSysrootBuildVariable() throws Exception {
+ AnalysisMock.get()
+ .ccSupport()
+ .setupCrosstool(mockToolsConfig, "builtin_sysroot: '/usr/local/custom-sysroot'");
+ useConfiguration();
+
+ scratch.file("x/BUILD", "cc_binary(name = 'bin', srcs = ['bin.cc'])");
+ scratch.file("x/bin.cc");
+
+ Variables variables = getCompileBuildVariables("//x:bin", "bin");
+
+ assertThat(variables.getStringVariable(CppModel.SYSROOT_VARIABLE_NAME))
+ .isEqualTo("/usr/local/custom-sysroot");
+ }
}