diff options
author | Klaus Aehlig <aehlig@google.com> | 2018-06-13 05:48:18 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-06-13 05:49:23 -0700 |
commit | ea21195ff0973c4bba0bda5887bb7c5fa5e7c5c2 (patch) | |
tree | 5dfe93b2b0d6d97c4e5b4e780f0520c1de909edd | |
parent | 348225e4d25b9259489c1ed66eb7eca7612cddcc (diff) |
Skylark repos: for failed patch command, also report stdout
The patch(1) utility usually gives error messages on stdout. So it is
not useful to report only stderr in case a patch failed. Report both.
Fixes #5379.
Change-Id: Ief198849e29ca989dfdefe2fadf495a0b0949972
PiperOrigin-RevId: 200377306
-rwxr-xr-x | src/test/shell/bazel/external_patching_test.sh | 32 | ||||
-rw-r--r-- | tools/build_defs/repo/utils.bzl | 3 |
2 files changed, 34 insertions, 1 deletions
diff --git a/src/test/shell/bazel/external_patching_test.sh b/src/test/shell/bazel/external_patching_test.sh index b9d6fd7b4f..ee3c938fe8 100755 --- a/src/test/shell/bazel/external_patching_test.sh +++ b/src/test/shell/bazel/external_patching_test.sh @@ -110,6 +110,38 @@ EOF grep -q 'env' $foopath || fail "expected unpatched file" } +test_patch_failed() { + EXTREPODIR=`pwd` + + cat > my_patch_tool <<'EOF' +#!/bin/sh + +echo Helpful message +exit 1 +EOF + chmod u+x my_patch_tool + + # Test that the patches attribute of http_archive is honored + mkdir main + cd main + echo "ignored anyway" > patch_foo.sh + cat > WORKSPACE <<EOF +load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") +http_archive( + name="ext", + strip_prefix="ext-0.1.2", + urls=["file://${EXTREPODIR}/ext.zip"], + build_file_content="exports_files([\"foo.sh\"])", + patches = ["//:patch_foo.sh"], + patch_tool = "${EXTREPODIR}/my_patch_tool", +) +EOF + touch BUILD + + bazel build @ext//... >"${TEST_log}" 2>&1 && fail "expected failure" || : + expect_log 'Helpful message' +} + test_patch_git() { EXTREPODIR=`pwd` export GIT_CONFIG_NOSYSTEM=YES diff --git a/tools/build_defs/repo/utils.bzl b/tools/build_defs/repo/utils.bzl index 4839b3e73b..e23556cce6 100644 --- a/tools/build_defs/repo/utils.bzl +++ b/tools/build_defs/repo/utils.bzl @@ -76,7 +76,8 @@ def patch(ctx): ) st = ctx.execute([bash_exe, "-c", command]) if st.return_code: - fail("Error applying patch %s:\n%s" % (str(patchfile), st.stderr)) + fail("Error applying patch %s:\n%s%s" % + (str(patchfile), st.stderr, st.stdout)) for cmd in ctx.attr.patch_cmds: st = ctx.execute([bash_exe, "-c", cmd]) if st.return_code: |