aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/commands/SyncCommand.java16
-rwxr-xr-xsrc/test/shell/bazel/workspace_resolved_test.sh13
2 files changed, 24 insertions, 5 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/commands/SyncCommand.java b/src/main/java/com/google/devtools/build/lib/bazel/commands/SyncCommand.java
index 180612074a..3ea73647c2 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/commands/SyncCommand.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/commands/SyncCommand.java
@@ -54,6 +54,14 @@ public final class SyncCommand implements BlazeCommand {
@Override
public void editOptions(OptionsParser optionsParser) {}
+ private static void reportError(CommandEnvironment env, EvaluationResult<SkyValue> value) {
+ if (value.getError().getException() != null) {
+ env.getReporter().handle(Event.error(value.getError().getException().getMessage()));
+ } else {
+ env.getReporter().handle(Event.error(value.getError().toString()));
+ }
+ }
+
@Override
public BlazeCommandResult exec(CommandEnvironment env, OptionsProvider options) {
try {
@@ -73,6 +81,7 @@ public final class SyncCommand implements BlazeCommand {
SkyframeExecutor.DEFAULT_THREAD_COUNT,
env.getReporter());
if (packageLookupValue.hasError()) {
+ reportError(env, packageLookupValue);
return BlazeCommandResult.exitCode(ExitCode.ANALYSIS_FAILURE);
}
RootedPath workspacePath =
@@ -89,6 +98,7 @@ public final class SyncCommand implements BlazeCommand {
SkyframeExecutor.DEFAULT_THREAD_COUNT,
env.getReporter());
if (value.hasError()) {
+ reportError(env, value);
return BlazeCommandResult.exitCode(ExitCode.ANALYSIS_FAILURE);
}
fileValue = (WorkspaceFileValue) value.get(workspace);
@@ -115,11 +125,7 @@ public final class SyncCommand implements BlazeCommand {
SkyframeExecutor.DEFAULT_THREAD_COUNT,
env.getReporter());
if (fetchValue.hasError()) {
- if (fetchValue.getError().getException() != null) {
- env.getReporter().handle(Event.error(fetchValue.getError().getException().getMessage()));
- } else {
- env.getReporter().handle(Event.error(fetchValue.getError().toString()));
- }
+ reportError(env, fetchValue);
return BlazeCommandResult.exitCode(ExitCode.ANALYSIS_FAILURE);
}
} catch (InterruptedException e) {
diff --git a/src/test/shell/bazel/workspace_resolved_test.sh b/src/test/shell/bazel/workspace_resolved_test.sh
index e3a18f21c2..cc9d9ec6d8 100755
--- a/src/test/shell/bazel/workspace_resolved_test.sh
+++ b/src/test/shell/bazel/workspace_resolved_test.sh
@@ -350,6 +350,19 @@ EOF
bazel build :a :b || fail "Expected both repositories to be present"
}
+test_sync_load_errors_reported() {
+ rm -rf fetchrepo
+ mkdir fetchrepo
+ cd fetchrepo
+ cat > WORKSPACE <<'EOF'
+load("//does/not:exist.bzl", "randomfunction")
+
+radomfunction(name="foo")
+EOF
+ bazel sync > "${TEST_log}" 2>&1 && fail "Expected failure" || :
+ expect_log '//does/not:exist.bzl'
+}
+
test_sync_debug_and_errors_printed() {
rm -rf fetchrepo
mkdir fetchrepo