aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainTest.java
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2018-04-12 11:28:24 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-04-12 11:30:11 -0700
commitd88edfc5e75b76faa4339a409a822d56447a7f27 (patch)
tree4f3879484c52d69a8b1f8d828eece7d29a55c4a9 /src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainTest.java
parent1381cf2c24563cac366ed32f17c900f70b953144 (diff)
Make statically linking cpp-runtimes as a crosstool feature.
This cl should result in no user-visible change. It simply sets the feature based on the field in the crosstool proto. A subsequent cl will expose this feature for people to actually use. PiperOrigin-RevId: 192641438
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainTest.java')
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainTest.java29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainTest.java
index 8141951ec8..9e6cbc3a90 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainTest.java
@@ -25,6 +25,7 @@ import com.google.devtools.build.lib.analysis.RuleContext;
import com.google.devtools.build.lib.analysis.platform.ToolchainInfo;
import com.google.devtools.build.lib.analysis.util.BuildViewTestCase;
import com.google.devtools.build.lib.packages.util.MockCcSupport;
+import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.FeatureConfiguration;
import com.google.devtools.build.lib.rules.cpp.CppConfiguration.DynamicMode;
import com.google.devtools.build.lib.testutil.TestConstants;
import com.google.devtools.build.lib.view.config.crosstool.CrosstoolConfig;
@@ -861,4 +862,32 @@ public class CcToolchainTest extends BuildViewTestCase {
assertThat(toolchainProvider.supportsDynamicLinker()).isTrue();
}
+
+ @Test
+ public void testStaticLinkCppRuntimesSetViaSupportsEmbeddedRuntimesUnset() throws Exception {
+ writeDummyCcToolchain();
+ getAnalysisMock().ccSupport().setupCrosstool(mockToolsConfig);
+ useConfiguration();
+ ConfiguredTarget target = getConfiguredTarget("//a:b");
+ CcToolchainProvider toolchainProvider =
+ (CcToolchainProvider) target.get(ToolchainInfo.PROVIDER);
+ FeatureConfiguration featureConfiguration =
+ CcCommon.configureFeatures(getRuleContext(target), toolchainProvider);
+ assertThat(toolchainProvider.supportsEmbeddedRuntimes())
+ .isEqualTo(featureConfiguration.isEnabled(CppRuleClasses.STATIC_LINK_CPP_RUNTIMES));
+ }
+
+ @Test
+ public void testStaticLinkCppRuntimesSetViaSupportsEmbeddedRuntimesFalse() throws Exception {
+ writeDummyCcToolchain();
+ getAnalysisMock().ccSupport().setupCrosstoolWithEmbeddedRuntimes(mockToolsConfig);
+ useConfiguration();
+ ConfiguredTarget target = getConfiguredTarget("//a:b");
+ CcToolchainProvider toolchainProvider =
+ (CcToolchainProvider) target.get(ToolchainInfo.PROVIDER);
+ FeatureConfiguration featureConfiguration =
+ CcCommon.configureFeatures(getRuleContext(target), toolchainProvider);
+ assertThat(toolchainProvider.supportsEmbeddedRuntimes())
+ .isEqualTo(featureConfiguration.isEnabled(CppRuleClasses.STATIC_LINK_CPP_RUNTIMES));
+ }
}