From: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
To: git@vger.kernel.org
Cc: "Junio C Hamano" <gitster@pobox.com>, "Eric Wong" <e@80x24.org>,
"Benno Evers" <benno@bmevers.de>, "Jean Privat" <jean@pryen.org>,
"René Scharfe" <l.s.r@web.de>,
"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Subject: [PATCH v2 0/5] describe test fixes
Date: Mon, 12 Apr 2021 13:21:42 +0200 [thread overview]
Message-ID: <cover-0.5-00000000000-20210412T111601Z-avarab@gmail.com> (raw)
In-Reply-To: <20210228195414.21372-1-avarab@gmail.com>
As noted in v1 we have a test for "git describe" test that tests for
nothing at all, due to being a nested test_expect_success.
This series is based on my "test-lib.sh fixes" series[2] and fixes
that bug, and should address all feedback on v1. In particular:
* Shell quoting fixes
* The "nothing should have stderr" general testing is gone per
Junio's request.
* Required test-lib.sh fixes moved to [1]
* We no longer change the return value of
test_expect_{success,failure} to narrowly catch the bug being fixed
here.
* Ejected SVN test fixup patches, needed for the now-ejected
test_expect_{success,failure} change. Those fixes still make sense,
but I'll submit them separately (they don't depend on anything
else).
I think the "catch the bug" is probably a good idea, but Junio's
suggestion of tracking this via some env variable "stack depth" is
something that would probably collide with t0000*.sh changes I have
unsubmitted/outstanding, and I don't have time to pursue it now. So
I've left that out.
1. https://lore.kernel.org/git/20210228195414.21372-1-avarab@gmail.com/#t
2. https://lore.kernel.org/git/cover-00.16-00000000000-20210412T110456Z-avarab@gmail.com/
Ævar Arnfjörð Bjarmason (5):
describe tests: improve test for --work-tree & --dirty
describe tests: refactor away from glob matching
describe tests: don't rely on err.actual from "check_describe"
describe tests: fix nested "test_expect_success" call
describe tests: support -C in "check_describe"
t/t6120-describe.sh | 134 ++++++++++++++++++++++++--------------------
1 file changed, 72 insertions(+), 62 deletions(-)
Range-diff against v1:
1: d76214a9171 = 1: c41a777462e describe tests: improve test for --work-tree & --dirty
2: c1b8625de15 ! 2: b428f468d68 describe tests: refactor away from glob matching
@@ t/t6120-describe.sh: check_describe () {
- esac
+ git describe $describe_opts 2>err.actual >raw &&
+ sed -e "s/-g[0-9a-f]*\$/-gHASH/" <raw >actual &&
-+ echo $expect >expect &&
++ echo "$expect" >expect &&
+ test_cmp expect actual
'
}
@@ t/t6120-describe.sh: test_expect_success setup '
-
+ test_commit --no-tag x file
'
-check_describe A-* HEAD
3: ac1a658d07f ! 3: 50b5a41f88d describe tests: always assert empty stderr from "describe"
@@ Metadata
Author: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
## Commit message ##
- describe tests: always assert empty stderr from "describe"
+ describe tests: don't rely on err.actual from "check_describe"
- Invert a test added in 3291fe4072e (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.
+ 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.
- There was only one case where we expected and got a warning. Let's
- test for that case explicitly, and assert no warnings or other stderr
- output for all the rest.
+ 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 3291fe4072e (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>
@@ t/t6120-describe.sh: check_describe () {
describe_opts="$@"
test_expect_success "describe $describe_opts" '
- git describe $describe_opts 2>err.actual >raw &&
-+ git describe $describe_opts 2>err >raw &&
-+ test_must_be_empty err &&
++ git describe $describe_opts >raw &&
sed -e "s/-g[0-9a-f]*\$/-gHASH/" <raw >actual &&
- echo $expect >expect &&
+ echo "$expect" >expect &&
test_cmp expect actual
@@ t/t6120-describe.sh: test_expect_success 'describe --contains defaults to HEAD without commit-ish' '
'
@@ t/t6120-describe.sh: test_expect_success 'describe --contains defaults to HEAD w
-'
+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>actual >out &&
++ git describe HEAD 2>err >out &&
+ cat >expected <<-\EOF &&
+ warning: tag 'Q' is externally known as 'A'
+ EOF
-+ test_cmp expected actual &&
++ test_cmp expected err &&
+ grep -E '^A-8-g[0-9a-f]+$' out
+"
+
4: 15efc2c6242 < -: ----------- test-lib functions: add an --annotated-tag option to "test_commit"
5: 06a8904d693 < -: ----------- describe tests: convert setup to use test_commit
6: 91424c8392b = 4: 5c81358d6bb describe tests: fix nested "test_expect_success" call
7: ecb8f6fb02f ! 5: 798f6cd63c8 describe tests: support -C in "check_describe"
@@ t/t6120-describe.sh: export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
shift
describe_opts="$@"
test_expect_success "describe $describe_opts" '
-- git describe $describe_opts 2>err >raw &&
-+ git ${indir:+ -C "$indir"} describe $describe_opts 2>err >raw &&
- test_must_be_empty err &&
+- git describe $describe_opts >raw &&
++ git ${indir:+ -C "$indir"} describe $describe_opts >raw &&
sed -e "s/-g[0-9a-f]*\$/-gHASH/" <raw >actual &&
- echo $expect >expect &&
+ echo "$expect" >expect &&
+ test_cmp expect actual
@@ t/t6120-describe.sh: test_expect_success 'setup: describe commits with disjoint bases' '
)
'
8: be5ed59dc61 < -: ----------- svn tests: remove legacy re-setup from init-clone test
9: 0b4238d012a < -: ----------- svn tests: refactor away a "set -e" in test body
10: 4f2c4f1fdd5 < -: ----------- test-lib: return 1 from test_expect_{success,failure}
--
2.31.1.634.gb41287a30b0
next prev parent reply other threads:[~2021-04-12 11:22 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-23 12:51 [PATCH] describe: dont abort too early when searching tags Benno Evers
2020-02-24 20:52 ` Junio C Hamano
2020-02-25 19:07 ` benno
2020-02-25 20:10 ` Junio C Hamano
2021-02-28 19:54 ` [PATCH 00/10] describe tests: refactor & fix recent broken tests Ævar Arnfjörð Bjarmason
2021-03-09 0:47 ` Junio C Hamano
2021-03-12 23:59 ` Junio C Hamano
2021-04-12 11:21 ` Ævar Arnfjörð Bjarmason [this message]
2021-04-12 11:21 ` [PATCH v2 1/5] describe tests: improve test for --work-tree & --dirty Ævar Arnfjörð Bjarmason
2021-04-12 11:21 ` [PATCH v2 2/5] describe tests: refactor away from glob matching Ævar Arnfjörð Bjarmason
2021-04-12 11:21 ` [PATCH v2 3/5] describe tests: don't rely on err.actual from "check_describe" Ævar Arnfjörð Bjarmason
2021-04-12 11:21 ` [PATCH v2 4/5] describe tests: fix nested "test_expect_success" call Ævar Arnfjörð Bjarmason
2021-04-12 11:21 ` [PATCH v2 5/5] describe tests: support -C in "check_describe" Ævar Arnfjörð Bjarmason
2021-04-12 11:33 ` [PATCH v2 0/2] svn tests: trivial "set -e" in main body of test fixes Ævar Arnfjörð Bjarmason
2021-04-12 11:33 ` [PATCH v2 1/2] svn tests: remove legacy re-setup from init-clone test Ævar Arnfjörð Bjarmason
2021-04-12 11:33 ` [PATCH v2 2/2] svn tests: refactor away a "set -e" in test body Ævar Arnfjörð Bjarmason
2021-02-28 19:54 ` [PATCH 01/10] describe tests: improve test for --work-tree & --dirty Ævar Arnfjörð Bjarmason
2021-02-28 19:54 ` [PATCH 02/10] describe tests: refactor away from glob matching Ævar Arnfjörð Bjarmason
2021-03-01 21:26 ` Junio C Hamano
2021-02-28 19:54 ` [PATCH 03/10] describe tests: always assert empty stderr from "describe" Ævar Arnfjörð Bjarmason
2021-03-01 21:32 ` Junio C Hamano
2021-02-28 19:54 ` [PATCH 04/10] test-lib functions: add an --annotated-tag option to "test_commit" Ævar Arnfjörð Bjarmason
2021-03-01 21:41 ` Junio C Hamano
2021-03-02 9:34 ` Ævar Arnfjörð Bjarmason
2021-03-03 6:35 ` Junio C Hamano
2021-02-28 19:54 ` [PATCH 05/10] describe tests: convert setup to use test_commit Ævar Arnfjörð Bjarmason
2021-03-01 21:42 ` Junio C Hamano
2021-02-28 19:54 ` [PATCH 06/10] describe tests: fix nested "test_expect_success" call Ævar Arnfjörð Bjarmason
2021-02-28 19:54 ` [PATCH 07/10] describe tests: support -C in "check_describe" Ævar Arnfjörð Bjarmason
2021-02-28 19:54 ` [PATCH 08/10] svn tests: remove legacy re-setup from init-clone test Ævar Arnfjörð Bjarmason
2021-02-28 19:54 ` [PATCH 09/10] svn tests: refactor away a "set -e" in test body Ævar Arnfjörð Bjarmason
2021-02-28 21:14 ` Eric Wong
2021-02-28 19:54 ` [PATCH 10/10] test-lib: return 1 from test_expect_{success,failure} Ævar Arnfjörð Bjarmason
2021-03-01 21:43 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover-0.5-00000000000-20210412T111601Z-avarab@gmail.com \
--to=avarab@gmail.com \
--cc=benno@bmevers.de \
--cc=e@80x24.org \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jean@pryen.org \
--cc=l.s.r@web.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).