summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikolaus Schuetz <nikolauspschuetz@gmail.com>2026-08-26 16:51:47 +0000
committerJunio C Hamano <gitster@pobox.com>2026-08-26 13:08:36 -0700
commit1260b4661c181884e2069ac9adb6189b3d6cc2f1 (patch)
tree173fe24b67409250620327100016ee8e155e0490
parent745601a9a94110d74769ab605ccd4f61339758d2 (diff)
t1401: check symbolic-ref failure and --quiet silence on a non-symbolic ref
git-symbolic-ref(1) documents that reading a name that is not a symbolic ref fails, and that --quiet does so silently. Tests such as t2020 and t5621 already rely on "symbolic-ref -q HEAD" failing on a detached HEAD, but none checks that the plain form reports the error or that --quiet stays silent. Assert that a non-symbolic ref fails with the "is not a symbolic ref" message, and that --quiet fails with no output. Use test_must_fail rather than pinning the exact exit codes, which are documented but not worth freezing in the test. Signed-off-by: Nikolaus Schuetz <nikolauspschuetz@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-xt/t1401-symbolic-ref.sh12
1 files changed, 12 insertions, 0 deletions
diff --git a/t/t1401-symbolic-ref.sh b/t/t1401-symbolic-ref.sh
index a2a7e94716..fd3aa89a91 100755
--- a/t/t1401-symbolic-ref.sh
+++ b/t/t1401-symbolic-ref.sh
@@ -38,6 +38,18 @@ test_expect_success 'symbolic-ref refuses bare sha1' '
reset_to_sane
+test_expect_success 'symbolic-ref reports a non-symbolic ref' '
+ test_must_fail git symbolic-ref refs/heads/foo >out 2>err &&
+ test_must_be_empty out &&
+ test_grep "is not a symbolic ref" err
+'
+
+test_expect_success 'symbolic-ref -q is silent on a non-symbolic ref' '
+ test_must_fail git symbolic-ref -q refs/heads/foo >out 2>err &&
+ test_must_be_empty out &&
+ test_must_be_empty err
+'
+
test_expect_success 'HEAD cannot be removed' '
test_must_fail git symbolic-ref -d HEAD
'