diff options
author | 2018-06-13 14:19:26 -0700 | |
---|---|---|
committer | 2018-06-13 14:21:00 -0700 | |
commit | e253f83306d155f9241493c1a8ca932760fd85a3 (patch) | |
tree | 142be67a0af09913a4f8a6e22bcabaab11f64ced /src/main/java | |
parent | 53179466fa10aad99c0660b68544561a2b6faade (diff) |
Fix filterTestsByTarget to filter by label instead of filtering by doing
package lookups to get Targets.
PiperOrigin-RevId: 200452642
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/analysis/BuildView.java | 33 |
1 files changed, 7 insertions, 26 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 ea7710ad12..e0b048362a 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 @@ -78,7 +78,6 @@ import com.google.devtools.build.lib.packages.Rule; import com.google.devtools.build.lib.packages.Target; import com.google.devtools.build.lib.packages.TargetUtils; import com.google.devtools.build.lib.pkgcache.LoadingResult; -import com.google.devtools.build.lib.pkgcache.PackageManager; import com.google.devtools.build.lib.pkgcache.PackageManager.PackageManagerStatistics; import com.google.devtools.build.lib.skyframe.AspectValue; import com.google.devtools.build.lib.skyframe.AspectValue.AspectKey; @@ -228,26 +227,14 @@ public class BuildView { /** Returns the collection of configured targets corresponding to any of the provided targets. */ @VisibleForTesting - static Iterable<? extends ConfiguredTarget> filterTestsByTargets( - Collection<? extends ConfiguredTarget> targets, - final Set<? extends Target> allowedTargets, - ExtendedEventHandler eventHandler, - PackageManager packageManager) { + static LinkedHashSet<ConfiguredTarget> filterTestsByTargets( + Collection<ConfiguredTarget> targets, Collection<Target> allowedTargets) { + Set<Label> allowedTargetLabels = + allowedTargets.stream().map(Target::getLabel).collect(Collectors.toSet()); return targets .stream() - .filter( - ct -> { - Target target = null; - try { - target = packageManager.getTarget(eventHandler, ct.getLabel()); - } catch (NoSuchTargetException | NoSuchPackageException | InterruptedException e) { - eventHandler.handle( - Event.error("Failed to get target from package when filtering.")); - return false; - } - return allowedTargets.contains(target); - }) - .collect(Collectors.toSet()); + .filter(ct -> allowedTargetLabels.contains(ct.getLabel())) + .collect(Collectors.toCollection(LinkedHashSet::new)); } @ThreadCompatible @@ -438,13 +425,7 @@ public class BuildView { Set<ConfiguredTarget> allTargetsToTest = null; if (testsToRun != null) { // Determine the subset of configured targets that are meant to be run as tests. - allTargetsToTest = - Sets.newLinkedHashSet( - filterTestsByTargets( - configuredTargets, - Sets.newHashSet(testsToRun), - eventHandler, - skyframeExecutor.getPackageManager())); + allTargetsToTest = filterTestsByTargets(configuredTargets, testsToRun); } Set<Artifact> artifactsToBuild = new HashSet<>(); |