Skip to content

Commit

Permalink
Make the existing tests for the test command work with Skymeld.
Browse files Browse the repository at this point in the history
Most of the changes in this CL concern what we print to the console in various cases.

PiperOrigin-RevId: 446964183
  • Loading branch information
joeleba authored and copybara-github committed May 6, 2022
1 parent 50f50e5 commit 2e9643c
Show file tree
Hide file tree
Showing 4 changed files with 52 additions and 31 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
import com.google.devtools.build.lib.server.FailureDetails.BuildConfiguration.Code;
import com.google.devtools.build.lib.server.FailureDetails.FailureDetail;
import com.google.devtools.build.lib.skyframe.BuildInfoCollectionFunction;
import com.google.devtools.build.lib.skyframe.BuildResultListener;
import com.google.devtools.build.lib.skyframe.PrecomputedValue;
import com.google.devtools.build.lib.skyframe.TargetPatternPhaseValue;
import com.google.devtools.build.lib.util.AbruptExitException;
Expand Down Expand Up @@ -114,7 +115,9 @@ static AnalysisAndExecutionResult execute(
runAnalysisAndExecutionPhase(
env, request, loadingResult, buildOptions, request.getMultiCpus());
}
// TODO(b/199053098) Report targets.
BuildResultListener buildResultListener = env.getBuildResultListener();
AnalysisPhaseRunner.reportTargets(
env, buildResultListener.getAnalyzedTargets(), buildResultListener.getAnalyzedTests());

} else {
env.getReporter().handle(Event.progress("Loading complete."));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ public static AnalysisResult execute(
module.afterAnalysis(env, request, buildOptions, analysisResult);
}

reportTargets(env, analysisResult);
reportTargets(env, analysisResult.getTargetsToBuild(), analysisResult.getTargetsToTest());

for (ConfiguredTarget target : analysisResult.getTargetsToSkip()) {
BuildConfigurationValue config =
Expand Down Expand Up @@ -274,9 +274,10 @@ private static AnalysisResult runAnalysisPhase(
return analysisResult;
}

private static void reportTargets(CommandEnvironment env, AnalysisResult analysisResult) {
Collection<ConfiguredTarget> targetsToBuild = analysisResult.getTargetsToBuild();
Collection<ConfiguredTarget> targetsToTest = analysisResult.getTargetsToTest();
static void reportTargets(
CommandEnvironment env,
Collection<ConfiguredTarget> targetsToBuild,
Collection<ConfiguredTarget> targetsToTest) {
if (targetsToTest != null) {
int testCount = targetsToTest.size();
int targetCount = targetsToBuild.size() - testCount;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -214,32 +214,49 @@ public void buildTargets(BuildRequest request, BuildResult result, TargetValidat
}

// TODO(b/199053098): implement support for --nobuild.
AnalysisAndExecutionResult analysisAndExecutionResult =
AnalysisAndExecutionPhaseRunner.execute(env, request, buildOptions, loadingResult);

BuildResultListener buildResultListener =
Preconditions.checkNotNull(env.getBuildResultListener());
result.setBuildConfigurationCollection(
analysisAndExecutionResult.getConfigurationCollection());
result.setActualTargets(buildResultListener.getAnalyzedTargets());
result.setTestTargets(buildResultListener.getAnalyzedTests());
try (SilentCloseable c = Profiler.instance().profile("Show results")) {
result.setSuccessfulTargets(
ExecutionTool.determineSuccessfulTargets(
buildResultListener.getAnalyzedTargets(),
buildResultListener.getBuiltTargets()));
result.setSuccessfulAspects(
ExecutionTool.determineSuccessfulAspects(
buildResultListener.getAnalyzedAspects().keySet(),
buildResultListener.getBuiltAspects()));
result.setSkippedTargets(buildResultListener.getSkippedTargets());
AnalysisAndExecutionResult analysisAndExecutionResult;
boolean buildCompleted = false;
try {
analysisAndExecutionResult =
AnalysisAndExecutionPhaseRunner.execute(env, request, buildOptions, loadingResult);
buildCompleted = true;
result.setBuildConfigurationCollection(
analysisAndExecutionResult.getConfigurationCollection());
} catch (InvalidConfigurationException
| TargetParsingException
| LoadingFailedException
| ViewCreationFailedException
| BuildFailedException
| TestExecException e) {
// These are non-catastrophic.
buildCompleted = true;
throw e;
} finally {
BuildResultListener buildResultListener =
Preconditions.checkNotNull(env.getBuildResultListener());
result.setActualTargets(buildResultListener.getAnalyzedTargets());
result.setTestTargets(buildResultListener.getAnalyzedTests());
try (SilentCloseable c = Profiler.instance().profile("Show results")) {
result.setSuccessfulTargets(
ExecutionTool.determineSuccessfulTargets(
buildResultListener.getAnalyzedTargets(),
buildResultListener.getBuiltTargets()));
result.setSuccessfulAspects(
ExecutionTool.determineSuccessfulAspects(
buildResultListener.getAnalyzedAspects().keySet(),
buildResultListener.getBuiltAspects()));
result.setSkippedTargets(buildResultListener.getSkippedTargets());
if (buildCompleted) {
getReporter().handle(Event.progress("Building complete."));
}
BuildResultPrinter buildResultPrinter = new BuildResultPrinter(env);
buildResultPrinter.showBuildResult(
request,
result,
buildResultListener.getAnalyzedTargets(),
buildResultListener.getSkippedTargets(),
buildResultListener.getAnalyzedAspects());
buildResultPrinter.showBuildResult(
request,
result,
buildResultListener.getAnalyzedTargets(),
buildResultListener.getSkippedTargets(),
buildResultListener.getAnalyzedAspects());
}
}
FailureDetail delayedFailureDetail = analysisAndExecutionResult.getFailureDetail();
if (delayedFailureDetail != null) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
load("@rules_java//java:defs.bzl", "java_library", "java_plugin")
load("@rules_pkg//:pkg.bzl", "pkg_tar")
load("//tools/build_defs/pkg:pkg.bzl", "pkg_tar")

package(default_visibility = ["//src:__subpackages__"])

Expand Down

0 comments on commit 2e9643c

Please sign in to comment.