diff options
author | hlopko <hlopko@google.com> | 2017-09-19 15:42:58 +0200 |
---|---|---|
committer | László Csomor <laszlocsomor@google.com> | 2017-09-19 17:17:56 +0200 |
commit | 6434af053cfffa38909bc86afe69e33b573b6179 (patch) | |
tree | cb6ca52ddada1f718089d4ff2e21d5d3eb79eee3 /src/test/java/com/google/devtools/build/lib/rules | |
parent | e85b5a7a7c4968ff3451573b4b8ca2a52a3e9961 (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.java | 5 | ||||
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/rules/cpp/CompileBuildVariablesTest.java | 16 |
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"); + } } |