aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2024-06-12 13:37:13 -0700
committerJunio C Hamano <gitster@pobox.com>2024-06-12 13:37:14 -0700
commita39e28ace77686db3324d1093a92c2cfdf5a5e0b (patch)
tree47c6ed576d7a0483f4d05b72fc4017ee3edca460
parent8d94cfb54504f2ec9edc7ca3eb5c29a3dd3675ae (diff)
parent56f4f4a29d32e177ef9af0907a17e431e8b3737e (diff)
downloadgit-a39e28ace77686db3324d1093a92c2cfdf5a5e0b.tar.gz
Merge branch 'jc/t1517-more'
A new test was added to ensure git commands that are designed to run outside repositories do work. * jc/t1517-more: imap-send: minimum leakfix t1517: more coverage for commands that work without repository
-rw-r--r--imap-send.c1
-rwxr-xr-xt/t1517-outside-repo.sh52
2 files changed, 53 insertions, 0 deletions
diff --git a/imap-send.c b/imap-send.c
index a5d1510180..185104d019 100644
--- a/imap-send.c
+++ b/imap-send.c
@@ -1543,6 +1543,7 @@ int cmd_main(int argc, const char **argv)
}
if (all_msgs.len == 0) {
+ strbuf_release(&all_msgs);
fprintf(stderr, "nothing to send\n");
return 1;
}
diff --git a/t/t1517-outside-repo.sh b/t/t1517-outside-repo.sh
index 557808ffa7..990a036582 100755
--- a/t/t1517-outside-repo.sh
+++ b/t/t1517-outside-repo.sh
@@ -56,4 +56,56 @@ test_expect_success 'grep outside repository' '
test_cmp expect actual
'
+test_expect_success 'imap-send outside repository' '
+ test_config_global imap.host imaps://localhost &&
+ test_config_global imap.folder Drafts &&
+
+ echo nothing to send >expect &&
+ test_must_fail git imap-send -v </dev/null 2>actual &&
+ test_cmp expect actual &&
+
+ (
+ cd non-repo &&
+ test_must_fail git imap-send -v </dev/null 2>../actual
+ ) &&
+ test_cmp expect actual
+'
+
+test_expect_success 'check-ref-format outside repository' '
+ git check-ref-format --branch refs/heads/xyzzy >expect &&
+ nongit git check-ref-format --branch refs/heads/xyzzy >actual &&
+ test_cmp expect actual
+'
+
+test_expect_success 'diff outside repository' '
+ echo one >one &&
+ echo two >two &&
+ test_must_fail git diff --no-index one two >expect.raw &&
+ (
+ cd non-repo &&
+ cp ../one . &&
+ cp ../two . &&
+ test_must_fail git diff one two >../actual.raw
+ ) &&
+ # outside repository diff falls back to SHA-1 but
+ # GIT_DEFAULT_HASH may be set to sha256 on the in-repo side.
+ sed -e "/^index /d" expect.raw >expect &&
+ sed -e "/^index /d" actual.raw >actual &&
+ test_cmp expect actual
+'
+
+test_expect_success 'stripspace outside repository' '
+ nongit git stripspace -s </dev/null
+'
+
+test_expect_success 'remote-http outside repository' '
+ test_must_fail git remote-http 2>actual &&
+ test_grep "^error: remote-curl" actual &&
+ (
+ cd non-repo &&
+ test_must_fail git remote-http 2>../actual
+ ) &&
+ test_grep "^error: remote-curl" actual
+'
+
test_done