aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java
diff options
context:
space:
mode:
authorGravatar Janak Ramakrishnan <janakr@google.com>2016-08-09 08:45:34 +0000
committerGravatar Yue Gan <yueg@google.com>2016-08-09 09:01:18 +0000
commit6f9d7d1c05a0dbb6db6bf058d01f7a05a14b4d91 (patch)
treea3272ec7786f004fa80c225d21f1547f92e881cd /src/main/java/com/google/devtools/build/lib/analysis/BuildView.java
parent1d9761390dddf4d577e06dad790d92f354187a9d (diff)
Error out if loading phase error encountered even if we skip analysis. Also change error messages in these cases to not assume there was an execution phase.
-- MOS_MIGRATED_REVID=129723717
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis/BuildView.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/BuildView.java36
1 files changed, 14 insertions, 22 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 e3cf5f6bc8..1afacf957b 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
@@ -269,21 +269,6 @@ public class BuildView {
* Return value for {@link BuildView#update} and {@code BuildTool.prepareToBuild}.
*/
public static final class AnalysisResult {
-
- public static final AnalysisResult EMPTY =
- new AnalysisResult(
- ImmutableList.<ConfiguredTarget>of(),
- ImmutableList.<AspectValue>of(),
- null,
- null,
- null,
- ImmutableList.<Artifact>of(),
- ImmutableList.<ConfiguredTarget>of(),
- ImmutableList.<ConfiguredTarget>of(),
- null,
- ImmutableMap.<PackageIdentifier, Path>of(),
- "");
-
private final ImmutableList<ConfiguredTarget> targetsToBuild;
@Nullable private final ImmutableList<ConfiguredTarget> targetsToTest;
@Nullable private final String error;
@@ -576,13 +561,7 @@ public class BuildView {
// Tests. This must come last, so that the exclusive tests are scheduled after everything else.
scheduleTestsIfRequested(parallelTests, exclusiveTests, topLevelOptions, allTargetsToTest);
- String error = loadingResult.hasTargetPatternError()
- ? "execution phase successful, but there were errors parsing the target pattern"
- : loadingResult.hasLoadingError() || skyframeAnalysisResult.hasLoadingError()
- ? "execution phase succeeded, but there were loading phase errors"
- : skyframeAnalysisResult.hasAnalysisError()
- ? "execution phase succeeded, but not all targets were analyzed"
- : null;
+ String error = createErrorMessage(loadingResult, skyframeAnalysisResult);
final WalkableGraph graph = skyframeAnalysisResult.getWalkableGraph();
final ActionGraph actionGraph = new ActionGraph() {
@@ -612,6 +591,19 @@ public class BuildView {
loadingResult.getWorkspaceName());
}
+ @Nullable
+ public static String createErrorMessage(
+ LoadingResult loadingResult, @Nullable SkyframeAnalysisResult skyframeAnalysisResult) {
+ return loadingResult.hasTargetPatternError()
+ ? "command succeeded, but there were errors parsing the target pattern"
+ : loadingResult.hasLoadingError()
+ || (skyframeAnalysisResult != null && skyframeAnalysisResult.hasLoadingError())
+ ? "command succeeded, but there were loading phase errors"
+ : (skyframeAnalysisResult != null && skyframeAnalysisResult.hasAnalysisError())
+ ? "command succeeded, but not all targets were analyzed"
+ : null;
+ }
+
private static NestedSet<Artifact> getBaselineCoverageArtifacts(
Collection<ConfiguredTarget> configuredTargets) {
NestedSetBuilder<Artifact> baselineCoverageArtifacts = NestedSetBuilder.stableOrder();