aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseFunction.java
diff options
context:
space:
mode:
authorGravatar cpeyser <cpeyser@google.com>2018-05-15 13:26:42 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-05-15 13:27:56 -0700
commit01306938bbfa78bf373f99338088c9311c62b3a5 (patch)
tree043d94c498966ac8ceaf7f4f8d12ad058f74fee9 /src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseFunction.java
parentf817134b2e39af6873255cecdda1a1d7ff38e090 (diff)
Change TestSuiteExpansionValue to contain Labels instead of Targets.
PiperOrigin-RevId: 196719433
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseFunction.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseFunction.java32
1 files changed, 19 insertions, 13 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseFunction.java
index 0bca5204f5..be4ad076ab 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseFunction.java
@@ -170,27 +170,24 @@ final class TargetPatternPhaseFunction implements SkyFunction {
LoadingPhaseRunner.maybeReportDeprecation(env.getListener(), targets.getTargets());
boolean preExpansionError = targets.hasError();
- ResolvedTargets.Builder<Target> expandedTargetsBuilder = ResolvedTargets.builder();
+ ResolvedTargets.Builder<Label> expandedLabelsBuilder = ResolvedTargets.builder();
for (Target target : targets.getTargets()) {
if (TargetUtils.isTestSuiteRule(target) && options.isExpandTestSuites()) {
SkyKey expansionKey =
Preconditions.checkNotNull(testExpansionKeys.get(target.getLabel()));
TestSuiteExpansionValue testExpansion =
(TestSuiteExpansionValue) expandedTests.get(expansionKey);
- expandedTargetsBuilder.merge(testExpansion.getTargets());
+ expandedLabelsBuilder.merge(testExpansion.getLabels());
} else {
- expandedTargetsBuilder.add(target);
+ expandedLabelsBuilder.add(target.getLabel());
}
}
- ResolvedTargets<Target> expandedTargets = expandedTargetsBuilder.build();
+ ResolvedTargets<Label> targetLabels = expandedLabelsBuilder.build();
+ ResolvedTargets<Target> expandedTargets =
+ TestSuiteExpansionFunction.labelsToTargets(
+ env, targetLabels.getTargets(), targetLabels.hasError());
Set<Target> testSuiteTargets =
Sets.difference(targets.getTargets(), expandedTargets.getTargets());
- ImmutableSet<Label> targetLabels =
- expandedTargets
- .getTargets()
- .stream()
- .map(Target::getLabel)
- .collect(ImmutableSet.toImmutableSet());
ImmutableSet<Label> testsToRunLabels = null;
if (testsToRun != null) {
testsToRunLabels =
@@ -201,7 +198,7 @@ final class TargetPatternPhaseFunction implements SkyFunction {
TargetPatternPhaseValue result =
new TargetPatternPhaseValue(
- targetLabels,
+ targetLabels.getTargets(),
testsToRunLabels,
targets.hasError(),
expandedTargets.hasError() || workspaceError,
@@ -363,15 +360,24 @@ final class TargetPatternPhaseFunction implements SkyFunction {
TestSuiteExpansionValue expandedSuitesValue = (TestSuiteExpansionValue) expandedSuites.get(
TestSuiteExpansionValue.key(value.getTargets().getTargets()));
if (pattern.isNegative()) {
- ResolvedTargets<Target> negativeTargets = expandedSuitesValue.getTargets();
+ ResolvedTargets<Target> negativeTargets =
+ TestSuiteExpansionFunction.labelsToTargets(
+ env,
+ expandedSuitesValue.getLabels().getTargets(),
+ expandedSuitesValue.getLabels().hasError());
testTargetsBuilder.filter(Predicates.not(Predicates.in(negativeTargets.getTargets())));
testTargetsBuilder.mergeError(negativeTargets.hasError());
} else {
- ResolvedTargets<Target> positiveTargets = expandedSuitesValue.getTargets();
+ ResolvedTargets<Target> positiveTargets =
+ TestSuiteExpansionFunction.labelsToTargets(
+ env,
+ expandedSuitesValue.getLabels().getTargets(),
+ expandedSuitesValue.getLabels().hasError());
testTargetsBuilder.addAll(positiveTargets.getTargets());
testTargetsBuilder.mergeError(positiveTargets.hasError());
}
}
+
testTargetsBuilder.filter(testFilter);
return testTargetsBuilder.build();
}