aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java
diff options
context:
space:
mode:
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.java23
1 files changed, 19 insertions, 4 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 5794965e6e..600afdf409 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
@@ -307,7 +307,7 @@ public class BuildView {
* Sets the configurations. Not thread-safe. DO NOT CALL except from tests!
*/
@VisibleForTesting
- void setConfigurationsForTesting(BuildConfigurationCollection configurations) {
+ public void setConfigurationsForTesting(BuildConfigurationCollection configurations) {
this.configurations = configurations;
}
@@ -921,7 +921,7 @@ public class BuildView {
* </em>
*/
@VisibleForTesting // for BuildViewTestCase
- void setArtifactRoots(ImmutableMap<PackageIdentifier, Path> packageRoots) {
+ public void setArtifactRoots(ImmutableMap<PackageIdentifier, Path> packageRoots) {
Map<Path, Root> rootMap = new HashMap<>();
Map<PackageIdentifier, Root> realPackageRoots = new HashMap<>();
for (Map.Entry<PackageIdentifier, Path> entry : packageRoots.entrySet()) {
@@ -979,14 +979,29 @@ public class BuildView {
new ConfiguredTargetKey(target.getLabel(), config),
/*isSystemEnv=*/false, config.extendedSanityChecks(), eventHandler,
/*skyframeEnv=*/null, config.isActionsEnabled(), binTools);
- RuleContext ruleContext = new RuleContext.Builder(analysisEnvironment,
+ return new RuleContext.Builder(analysisEnvironment,
(Rule) target.getTarget(), config, ruleClassProvider.getPrerequisiteValidator())
.setVisibility(NestedSetBuilder.<PackageSpecification>create(
Order.STABLE_ORDER, PackageSpecification.EVERYTHING))
.setPrerequisites(getPrerequisiteMapForTesting(target))
.setConfigConditions(ImmutableSet.<ConfigMatchingProvider>of())
.build();
- return ruleContext;
+ }
+
+ /**
+ * Creates and returns a rule context that is equivalent to the one that was used to create the
+ * given configured target.
+ */
+ @VisibleForTesting
+ public RuleContext getRuleContextForTesting(ConfiguredTarget target, AnalysisEnvironment env) {
+ return new RuleContext.Builder(
+ env, (Rule) target.getTarget(), target.getConfiguration(),
+ ruleClassProvider.getPrerequisiteValidator())
+ .setVisibility(NestedSetBuilder.<PackageSpecification>create(
+ Order.STABLE_ORDER, PackageSpecification.EVERYTHING))
+ .setPrerequisites(getPrerequisiteMapForTesting(target))
+ .setConfigConditions(ImmutableSet.<ConfigMatchingProvider>of())
+ .build();
}
/**