diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis/BuildView.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/analysis/BuildView.java | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java b/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java index 07f54837b6..0869785195 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java @@ -897,7 +897,8 @@ public class BuildView { /*isSystemEnv=*/false, config.extendedSanityChecks(), eventHandler, /*skyframeEnv=*/null, config.isActionsEnabled(), binTools); return new RuleContext.Builder(analysisEnvironment, - (Rule) target.getTarget(), config, ruleClassProvider.getPrerequisiteValidator()) + (Rule) target.getTarget(), config, getHostConfigurationForTesting(config), + ruleClassProvider.getPrerequisiteValidator()) .setVisibility(NestedSetBuilder.<PackageSpecification>create( Order.STABLE_ORDER, PackageSpecification.EVERYTHING)) .setPrerequisites(getPrerequisiteMapForTesting(target)) @@ -911,8 +912,9 @@ public class BuildView { */ @VisibleForTesting public RuleContext getRuleContextForTesting(ConfiguredTarget target, AnalysisEnvironment env) { + BuildConfiguration targetConfig = target.getConfiguration(); return new RuleContext.Builder( - env, (Rule) target.getTarget(), target.getConfiguration(), + env, (Rule) target.getTarget(), targetConfig, getHostConfigurationForTesting(targetConfig), ruleClassProvider.getPrerequisiteValidator()) .setVisibility(NestedSetBuilder.<PackageSpecification>create( Order.STABLE_ORDER, PackageSpecification.EVERYTHING)) @@ -921,6 +923,11 @@ public class BuildView { .build(); } + private BuildConfiguration getHostConfigurationForTesting(BuildConfiguration config) { + // TODO(bazel-team): support dynamic transitions in tests. + return config == null ? null : config.getConfiguration(Attribute.ConfigurationTransition.HOST); + } + /** * For a configured target dependentTarget, returns the desired configured target * that is depended upon. Useful for obtaining the a target with aspects |