diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/bazel/commands/SyncCommand.java | 16 | ||||
-rwxr-xr-x | src/test/shell/bazel/workspace_resolved_test.sh | 13 |
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 |