1
0
mirror of https://github.com/git/git synced 2024-07-05 00:58:49 +00:00

describe tests: don't rely on err.actual from "check_describe"

Convert the one test that relied on the "err.actual" file produced by
check_describe() to instead do its own check of "git describe"
output.

This means that the two tests won't have an inter-dependency (e.g. if
the earlier test is skipped).

An earlier version of this patch instead asserted that no other test
had any output on stderr. We're not doing that here out of fear that
"gc --auto" or another future change to "git describe" will cause it
to legitimately emit output on stderr unexpectedly[1].

I'd think that inverting the test added in 3291fe4072 (Add
git-describe test for "verify annotated tag names on output",
2008-03-03) to make checking that we don't have warnings the rule
rather than the exception would be the sort of thing the describe
tests should be catching, but for now let's leave it as it is.

1. http://lore.kernel.org/git/xmqqwnuqo8ze.fsf@gitster.c.googlers.com

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Ævar Arnfjörð Bjarmason 2021-04-12 13:21:45 +02:00 committed by Junio C Hamano
parent a46a848296
commit 7f07c1cdb7

View File

@ -21,7 +21,7 @@ check_describe () {
shift
describe_opts="$@"
test_expect_success "describe $describe_opts" '
git describe $describe_opts 2>err.actual >raw &&
git describe $describe_opts >raw &&
sed -e "s/-g[0-9a-f]*\$/-gHASH/" <raw >actual &&
echo "$expect" >expect &&
test_cmp expect actual
@ -90,20 +90,17 @@ test_expect_success 'describe --contains defaults to HEAD without commit-ish' '
'
check_describe tags/A --all A^0
test_expect_success 'no warning was displayed for A' '
test_must_be_empty err.actual
'
test_expect_success 'rename tag A to Q locally' '
mv .git/refs/tags/A .git/refs/tags/Q
'
cat - >err.expect <<EOF
warning: tag 'Q' is externally known as 'A'
EOF
check_describe A-8-gHASH HEAD
test_expect_success 'warning was displayed for Q' '
test_cmp err.expect err.actual
'
test_expect_success 'renaming tag A to Q locally produces a warning' "
mv .git/refs/tags/A .git/refs/tags/Q &&
git describe HEAD 2>err >out &&
cat >expected <<-\EOF &&
warning: tag 'Q' is externally known as 'A'
EOF
test_cmp expected err &&
grep -E '^A-8-g[0-9a-f]+$' out
"
test_expect_success 'misnamed annotated tag forces long output' '
description=$(git describe --no-long Q^0) &&
expr "$description" : "A-0-g[0-9a-f]*$" &&