diff options
author | Tobias Bosch <tbosch@google.com> | 2019-07-10 06:23:57 -0700 |
---|---|---|
committer | Tobias Bosch <tbosch@google.com> | 2019-07-11 08:28:16 +0000 |
commit | 9332d21c19199f99886b1476cab6f4dd89e82a72 (patch) | |
tree | 2825d3172d14a689305cb00fa9545d30040947e6 /compiler_wrapper/disable_werror_flag.go | |
parent | 4044dab9b197cb72281b540750e425180028897f (diff) | |
download | toolchain-utils-9332d21c19199f99886b1476cab6f4dd89e82a72.tar.gz |
Unify command error handling
BUG=chromium:773875
TEST=unit test
Change-Id: Ibe32309c021d72e08cecc7d6830756fa1503e809
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1695801
Reviewed-by: Tobias Bosch <tbosch@google.com>
Tested-by: Tobias Bosch <tbosch@google.com>
Diffstat (limited to 'compiler_wrapper/disable_werror_flag.go')
-rw-r--r-- | compiler_wrapper/disable_werror_flag.go | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/compiler_wrapper/disable_werror_flag.go b/compiler_wrapper/disable_werror_flag.go index 3115e692..28b257b0 100644 --- a/compiler_wrapper/disable_werror_flag.go +++ b/compiler_wrapper/disable_werror_flag.go @@ -15,10 +15,10 @@ func shouldForceDisableWError(env env) bool { func doubleBuildWithWNoError(env env, cfg *config, originalCmd *command) (exitCode int, err error) { originalStdoutBuffer := &bytes.Buffer{} originalStderrBuffer := &bytes.Buffer{} - err = env.run(originalCmd, originalStdoutBuffer, originalStderrBuffer) - originalExitCode, ok := getExitCode(err) - if !ok { - return 0, wrapErrorwithSourceLocf(err, "failed to execute %#v", originalCmd) + originalExitCode, err := wrapSubprocessErrorWithSourceLoc(originalCmd, + env.run(originalCmd, originalStdoutBuffer, originalStderrBuffer)) + if err != nil { + return 0, err } // The only way we can do anything useful is if it looks like the failure // was -Werror-related. @@ -35,10 +35,10 @@ func doubleBuildWithWNoError(env env, cfg *config, originalCmd *command) (exitCo args: append(originalCmd.args, "-Wno-error"), envUpdates: originalCmd.envUpdates, } - err = env.run(retryCommand, retryStdoutBuffer, retryStderrBuffer) - retryExitCode, ok := getExitCode(err) - if !ok { - return 0, wrapErrorwithSourceLocf(err, "failed to execute %#v", retryCommand) + retryExitCode, err := wrapSubprocessErrorWithSourceLoc(retryCommand, + env.run(retryCommand, retryStdoutBuffer, retryStderrBuffer)) + if err != nil { + return 0, err } // If -Wno-error fixed us, pretend that we never ran without -Wno-error. // Otherwise, pretend that we never ran the second invocation. Since -Werror |