From ccd54bd00e9c63f880a67d35f89ac603c084db71 Mon Sep 17 00:00:00 2001 From: Klaus Aehlig Date: Thu, 1 Mar 2018 02:24:37 -0800 Subject: Support patching of git repositories as well By simply sharing the utility function. In this way, we get feature parity between git_repository and http_archive. Fixes #4676. Change-Id: I99b300e42b2f267d8d04fd965f09c24f3ae54f10 PiperOrigin-RevId: 187450644 --- src/test/shell/bazel/external_patching_test.sh | 86 ++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) (limited to 'src/test/shell') diff --git a/src/test/shell/bazel/external_patching_test.sh b/src/test/shell/bazel/external_patching_test.sh index fe5d4f2af8..820b85963b 100755 --- a/src/test/shell/bazel/external_patching_test.sh +++ b/src/test/shell/bazel/external_patching_test.sh @@ -110,6 +110,92 @@ EOF grep -q 'env' $foopath || fail "expected unpatched file" } +test_patch_git() { + EXTREPODIR=`pwd` + export GIT_CONFIG_NOSYSTEM=YES + + mkdir extgit + (cd extgit && git init \ + && git config user.email 'me@example.com' \ + && git config user.name 'E X Ample' ) + cat > extgit/foo.sh <<'EOF' +#!/usr/bin/env sh + +echo Here be dragons... +EOF + (cd extgit + git add . + git commit --author="A U Thor " -m 'initial commit' + git tag mytag) + + # Test that the patches attribute of git_repository is honored + mkdir main + cd main + cat > patch_foo.sh <<'EOF' +--- foo.sh.orig 2018-01-15 10:39:20.183909147 +0100 ++++ foo.sh 2018-01-15 10:43:35.331566052 +0100 +@@ -1,3 +1,3 @@ + #!/usr/bin/env sh + +-echo Here be dragons... ++echo There are dragons... +EOF + cat > WORKSPACE < BUILD <<'EOF' +genrule( + name = "foo", + outs = ["foo.sh"], + srcs = ["@ext//:foo.sh"], + cmd = "cp $< $@; chmod u+x $@", + executable = True, +) +EOF + bazel build :foo.sh + foopath=`bazel info bazel-genfiles`/foo.sh + grep -q 'There are' $foopath || fail "expected patch to be applied" + grep env $foopath && fail "expected patch commands to be executed" || : + + # Verify that changes to the patch files trigger enough rebuilding + cat > patch_foo.sh <<'EOF' +--- foo.sh.orig 2018-01-15 10:39:20.183909147 +0100 ++++ foo.sh 2018-01-15 10:43:35.331566052 +0100 +@@ -1,3 +1,3 @@ + #!/usr/bin/env sh + +-echo Here be dragons... ++echo completely differently patched +EOF + bazel build :foo.sh + foopath=`bazel info bazel-genfiles`/foo.sh + grep -q 'differently patched' $foopath \ + || fail "expected the new patch to be applied" + + # Verify that changes to the patches attribute trigger enough rebuilding + cat > WORKSPACE <