diff options
author | 2018-04-12 11:28:24 -0700 | |
---|---|---|
committer | 2018-04-12 11:30:11 -0700 | |
commit | d88edfc5e75b76faa4339a409a822d56447a7f27 (patch) | |
tree | 4f3879484c52d69a8b1f8d828eece7d29a55c4a9 /src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainTest.java | |
parent | 1381cf2c24563cac366ed32f17c900f70b953144 (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.java | 29 |
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)); + } } |