summaryrefslogtreecommitdiffstats
path: root/t/lib-patch-mode.sh
diff options
context:
space:
mode:
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>2023-02-06 23:44:29 +0100
committerJunio C Hamano <gitster@pobox.com>2023-02-07 00:30:41 +0100
commit62f3a45bb49f9436f1cd754b02ac549b1f6514cf (patch)
tree1659454b51ffdb1dd6415f130b4843b21d666961 /t/lib-patch-mode.sh
parentauto-crlf tests: don't lose exit code in loops and outside tests (diff)
downloadgit-62f3a45bb49f9436f1cd754b02ac549b1f6514cf.tar.xz
git-62f3a45bb49f9436f1cd754b02ac549b1f6514cf.zip
t/lib-patch-mode.sh: fix ignored exit codes
Fix code added in b319ef70a94 (Add a small patch-mode testing library, 2009-08-13) to use &&-chaining. This avoids losing both the exit code of a "git" and the "cat" processes. This fixes cases where we'd have e.g. missed memory leaks under SANITIZE=leak, this code doesn't leak now as far as I can tell, but I discovered it while looking at leaks in related code. For "verify_saved_head()" we could make use of "test_cmp_rev" with some changes, but it uses "git rev-parse --verify", and this existing test does not. I think it could safely use it, but let's avoid the while-at-it change, and narrowly fix the exit code problem. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/lib-patch-mode.sh')
-rw-r--r--t/lib-patch-mode.sh11
1 files changed, 8 insertions, 3 deletions
diff --git a/t/lib-patch-mode.sh b/t/lib-patch-mode.sh
index cfd76bf987..89ca1f7805 100644
--- a/t/lib-patch-mode.sh
+++ b/t/lib-patch-mode.sh
@@ -29,8 +29,12 @@ set_and_save_state () {
# verify_state <path> <expected-worktree-content> <expected-index-content>
verify_state () {
- test "$(cat "$1")" = "$2" &&
- test "$(git show :"$1")" = "$3"
+ echo "$2" >expect &&
+ test_cmp expect "$1" &&
+
+ echo "$3" >expect &&
+ git show :"$1" >actual &&
+ test_cmp expect actual
}
# verify_saved_state <path>
@@ -46,5 +50,6 @@ save_head () {
}
verify_saved_head () {
- test "$(cat _head)" = "$(git rev-parse HEAD)"
+ git rev-parse HEAD >actual &&
+ test_cmp _head actual
}