aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java
diff options
context:
space:
mode:
authorGravatar janakr <janakr@google.com>2018-03-27 12:40:58 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-03-27 12:42:33 -0700
commitc9dcf83ccdeced9a68ab1d5719e51c51e9881fd2 (patch)
tree30dbdf8200a63e6f78f8a6633e148fedb08ba850 /src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java
parentf39f893363eb9f69262d0f6ce981a7995b1f2cf5 (diff)
Thread configuration map through TestFilteringCompleteEvent. This isn't the most elegant solution, but I don't have a better idea.
PiperOrigin-RevId: 190656869
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java32
1 files changed, 30 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java b/src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java
index 00138b3125..ed9024a4d0 100644
--- a/src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java
+++ b/src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java
@@ -18,6 +18,7 @@ import com.google.common.base.Preconditions;
import com.google.common.base.Stopwatch;
import com.google.common.base.Throwables;
import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
import com.google.devtools.build.lib.actions.BuildFailedException;
import com.google.devtools.build.lib.actions.TestExecException;
import com.google.devtools.build.lib.analysis.AnalysisPhaseCompleteEvent;
@@ -66,15 +67,19 @@ import com.google.devtools.build.lib.profiler.ProfilePhase;
import com.google.devtools.build.lib.profiler.Profiler;
import com.google.devtools.build.lib.runtime.BlazeRuntime;
import com.google.devtools.build.lib.runtime.CommandEnvironment;
+import com.google.devtools.build.lib.skyframe.BuildConfigurationValue;
import com.google.devtools.build.lib.util.AbruptExitException;
import com.google.devtools.build.lib.util.ExitCode;
import com.google.devtools.build.lib.util.RegexFilter;
import com.google.devtools.common.options.OptionsParsingException;
import java.util.Collection;
+import java.util.Map;
+import java.util.Objects;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import java.util.logging.Logger;
import java.util.regex.Pattern;
+import java.util.stream.Stream;
/**
* Provides the bulk of the implementation of the 'blaze build' command.
@@ -489,8 +494,31 @@ public class BuildTool {
env.getEventBus().post(new AnalysisPhaseCompleteEvent(analysisResult.getTargetsToBuild(),
view.getTargetsVisited(), timer.stop().elapsed(TimeUnit.MILLISECONDS),
view.getAndClearPkgManagerStatistics()));
- env.getEventBus().post(new TestFilteringCompleteEvent(analysisResult.getTargetsToBuild(),
- analysisResult.getTargetsToTest()));
+ ImmutableSet<BuildConfigurationValue.Key> configurationKeys =
+ Stream.concat(
+ analysisResult
+ .getTargetsToBuild()
+ .stream()
+ .map(ConfiguredTarget::getConfigurationKey)
+ .distinct(),
+ analysisResult.getTargetsToTest() == null
+ ? Stream.empty()
+ : analysisResult
+ .getTargetsToTest()
+ .stream()
+ .map(ConfiguredTarget::getConfigurationKey)
+ .distinct())
+ .filter(Objects::nonNull)
+ .distinct()
+ .collect(ImmutableSet.toImmutableSet());
+ Map<BuildConfigurationValue.Key, BuildConfiguration> configurationMap =
+ env.getSkyframeExecutor().getConfigurations(env.getReporter(), configurationKeys);
+ env.getEventBus()
+ .post(
+ new TestFilteringCompleteEvent(
+ analysisResult.getTargetsToBuild(),
+ analysisResult.getTargetsToTest(),
+ configurationMap));
// Check licenses.
// We check licenses if the first target configuration has license checking enabled. Right now,