aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java
diff options
context:
space:
mode:
authorGravatar mjhalupka <mjhalupka@google.com>2018-06-13 14:19:26 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-06-13 14:21:00 -0700
commite253f83306d155f9241493c1a8ca932760fd85a3 (patch)
tree142be67a0af09913a4f8a6e22bcabaab11f64ced /src/main/java
parent53179466fa10aad99c0660b68544561a2b6faade (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.java33
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<>();