diff options
author | 2018-08-07 04:40:40 -0700 | |
---|---|---|
committer | 2018-08-07 04:42:01 -0700 | |
commit | 473ea10c0dc76f3760f4f4afd3adb3b40b40abdb (patch) | |
tree | a48ecdbb3fc87012d98111e6e753d6c79fcf5888 /src/test/java/com/google/devtools/build | |
parent | 6eefeb04b900be29d96a87dcdc3938151d98d9bf (diff) |
Pass cc_toolchain location to FeatureConfiguration
Paths to tools in CROSSTOOL are either absolute or relative to the CROSSTOOL location (which is the same as cc_toolchain location). As in the future CROSSTOOL will be gone, and the new skylark rule that will replace CROSSTOOL will not have to be in the same location as cc_toolchain, we need to pass information to FeatureConfiguration about the location of the cc_toolchain in use, so we can calculate the workspace relative paths to the tools.
RELNOTES: None.
PiperOrigin-RevId: 207695703
Diffstat (limited to 'src/test/java/com/google/devtools/build')
3 files changed, 24 insertions, 24 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeaturesTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeaturesTest.java index 965a4a56c6..c3b6082f4e 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeaturesTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeaturesTest.java @@ -95,9 +95,18 @@ public class CcToolchainFeaturesTest extends FoundationTestCase { TextFormat.merge(Joiner.on("").join(toolchain), toolchainBuilder); return new CcToolchainFeatures( CcToolchainConfigInfo.fromToolchain( - CrosstoolRelease.getDefaultInstance(), - toolchainBuilder.buildPartial(), - PathFragment.create("crosstool/"))); + CrosstoolRelease.getDefaultInstance(), toolchainBuilder.buildPartial()), + PathFragment.create("crosstool/")); + } + + /** Creates an empty CcToolchainFeatures. */ + public static CcToolchainFeatures buildEmptyFeatures(String... toolchain) throws Exception { + CToolchain.Builder toolchainBuilder = CToolchain.newBuilder(); + TextFormat.merge(Joiner.on("").join(toolchain), toolchainBuilder); + return new CcToolchainFeatures( + CcToolchainConfigInfo.fromToolchain( + CrosstoolRelease.getDefaultInstance(), toolchainBuilder.buildPartial()), + PathFragment.EMPTY_FRAGMENT); } private Set<String> getEnabledFeatures(CcToolchainFeatures features, @@ -127,7 +136,7 @@ public class CcToolchainFeaturesTest extends FoundationTestCase { @Test public void testFeatureConfigurationCodec() throws Exception { FeatureConfiguration emptyConfiguration = - buildFeatures("").getFeatureConfiguration(ImmutableSet.of()); + buildEmptyFeatures("").getFeatureConfiguration(ImmutableSet.of()); FeatureConfiguration emptyFeatures = buildFeatures("feature {name: 'a'}", "feature {name: 'b'}") .getFeatureConfiguration(ImmutableSet.of("a", "b")); @@ -1432,8 +1441,7 @@ public class CcToolchainFeaturesTest extends FoundationTestCase { " implies: 'action-a'", "}") .getFeatureConfiguration(ImmutableSet.of("activates-action-a")); - PathFragment toolPath = configuration.getToolForAction("action-a").getToolPathFragment(); - assertThat(toolPath.toString()).isEqualTo("crosstool/toolchain/a"); + assertThat(configuration.getToolPathForAction("action-a")).isEqualTo("crosstool/toolchain/a"); } @Test @@ -1483,39 +1491,36 @@ public class CcToolchainFeaturesTest extends FoundationTestCase { FeatureConfiguration featureAConfiguration = toolchainFeatures.getFeatureConfiguration( ImmutableSet.of("feature-a", "activates-action-a")); - assertThat(featureAConfiguration.getToolForAction("action-a").getToolPathFragment().toString()) + assertThat(featureAConfiguration.getToolPathForAction("action-a")) .isEqualTo("crosstool/toolchain/feature-a-and-not-c"); FeatureConfiguration featureAAndCConfiguration = toolchainFeatures.getFeatureConfiguration( ImmutableSet.of("feature-a", "feature-c", "activates-action-a")); - assertThat( - featureAAndCConfiguration.getToolForAction("action-a").getToolPathFragment().toString()) + assertThat(featureAAndCConfiguration.getToolPathForAction("action-a")) .isEqualTo("crosstool/toolchain/feature-b-or-c"); FeatureConfiguration featureBConfiguration = toolchainFeatures.getFeatureConfiguration( ImmutableSet.of("feature-b", "activates-action-a")); - assertThat(featureBConfiguration.getToolForAction("action-a").getToolPathFragment().toString()) + assertThat(featureBConfiguration.getToolPathForAction("action-a")) .isEqualTo("crosstool/toolchain/feature-b-or-c"); FeatureConfiguration featureCConfiguration = toolchainFeatures.getFeatureConfiguration( ImmutableSet.of("feature-c", "activates-action-a")); - assertThat(featureCConfiguration.getToolForAction("action-a").getToolPathFragment().toString()) + assertThat(featureCConfiguration.getToolPathForAction("action-a")) .isEqualTo("crosstool/toolchain/feature-b-or-c"); FeatureConfiguration featureAAndBConfiguration = toolchainFeatures.getFeatureConfiguration( ImmutableSet.of("feature-a", "feature-b", "activates-action-a")); - assertThat( - featureAAndBConfiguration.getToolForAction("action-a").getToolPathFragment().toString()) + assertThat(featureAAndBConfiguration.getToolPathForAction("action-a")) .isEqualTo("crosstool/toolchain/features-a-and-b"); FeatureConfiguration noFeaturesConfiguration = toolchainFeatures.getFeatureConfiguration(ImmutableSet.of("activates-action-a")); - assertThat( - noFeaturesConfiguration.getToolForAction("action-a").getToolPathFragment().toString()) + assertThat(noFeaturesConfiguration.getToolPathForAction("action-a")) .isEqualTo("crosstool/toolchain/default"); } @@ -1543,7 +1548,7 @@ public class CcToolchainFeaturesTest extends FoundationTestCase { toolchainFeatures.getFeatureConfiguration(ImmutableSet.of("activates-action-a")); try { - noFeaturesConfiguration.getToolForAction("action-a").getToolPathFragment(); + noFeaturesConfiguration.getToolPathForAction("action-a"); fail("Expected IllegalArgumentException"); } catch (IllegalArgumentException e) { assertThat(e) diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/LinkBuildVariablesTestCase.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/LinkBuildVariablesTestCase.java index 7d780edc46..ba9c7b9436 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/cpp/LinkBuildVariablesTestCase.java +++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/LinkBuildVariablesTestCase.java @@ -74,9 +74,8 @@ public class LinkBuildVariablesTestCase extends BuildViewTestCase { TextFormat.merge(Joiner.on("").join(toolchain), toolchainBuilder); return new CcToolchainFeatures( CcToolchainConfigInfo.fromToolchain( - CrosstoolRelease.getDefaultInstance(), - toolchainBuilder.buildPartial(), - /* crosstoolTop= */ PathFragment.EMPTY_FRAGMENT)); + CrosstoolRelease.getDefaultInstance(), toolchainBuilder.buildPartial()), + /* ccToolchainPath= */ PathFragment.EMPTY_FRAGMENT); } /** Returns the value of a given sequence variable in context of the given Variables instance. */ diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/SkylarkCcCommonTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/SkylarkCcCommonTest.java index 889e788d18..7f688bf16e 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/cpp/SkylarkCcCommonTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/SkylarkCcCommonTest.java @@ -86,11 +86,7 @@ public class SkylarkCcCommonTest extends BuildViewTestCase { CcCommon.configureFeaturesOrThrowEvalException( ImmutableSet.of(), ImmutableSet.of(), toolchain); assertThat(actionToolPath) - .isEqualTo( - featureConfiguration - .getToolForAction(CppActionNames.CPP_COMPILE) - .getToolPathFragment() - .getPathString()); + .isEqualTo(featureConfiguration.getToolPathForAction(CppActionNames.CPP_COMPILE)); } @Test |