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>
seen
Nikolaus Schuetz 2026-08-26 16:51:47 +00:00 committed by Junio C Hamano
parent 745601a9a9
commit 1260b4661c
1 changed files with 12 additions and 0 deletions

View File

@ -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
'