diff options
author | cpeyser <cpeyser@google.com> | 2018-05-15 13:26:42 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-05-15 13:27:56 -0700 |
commit | 01306938bbfa78bf373f99338088c9311c62b3a5 (patch) | |
tree | 043d94c498966ac8ceaf7f4f8d12ad058f74fee9 /src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseFunction.java | |
parent | f817134b2e39af6873255cecdda1a1d7ff38e090 (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.java | 32 |
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(); } |