git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 03/10] describe tests: always assert empty stderr from "describe"

From
Junio C Hamano <gitster@pobox.com>
Date
Mar 1, 2021, 21:32 UTC
Message-ID
<xmqqwnuqo8ze.fsf@gitster.c.googlers.com>
In-Reply-To
<20210228195414.21372-4-avarab@gmail.com>
Ævar Arnfjörð Bjarmason  <avarab@gmail.com> writes:
Show 7 quoted lines
> 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.
>
> 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.

When we are expecting an error from "describe", we would want to make sure that we will see an expected explanation of the failure (e.g. "you passed a non-commit") in the standard error stream, but I am somewhat skeptical about the value of a change like this that insists that there is nothing on the standard error stream when the command succeeds.

It is unlikely to trigger auto GC during the operation of "git describe" and seeing some output in the standard error stream, but it is easy to imagine that we may add an "automatically cache precomputed topology information" feature and trigger during a history traversal operation like this one, with some note to the standard error output.

Show 50 quoted lines
> Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
> ---
>  t/t6120-describe.sh | 26 ++++++++++++--------------
>  1 file changed, 12 insertions(+), 14 deletions(-)
>
> diff --git a/t/t6120-describe.sh b/t/t6120-describe.sh
> index e4fd5d567f..ef70c695be 100755
> --- a/t/t6120-describe.sh
> +++ b/t/t6120-describe.sh
> @@ -21,7 +21,8 @@ check_describe () {
>  	shift
>  	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 &&
>  		sed -e "s/-g[0-9a-f]*\$/-gHASH/" <raw >actual &&
>  		echo $expect >expect &&
>  		test_cmp expect actual
> @@ -122,20 +123,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>actual >out &&
> +	cat >expected <<-\EOF &&
> +	warning: tag 'Q' is externally known as 'A'
> +	EOF
> +	test_cmp expected actual &&
> +	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]*$" &&
Previous: Ævar Arnfjörð BjarmasonNext: Ævar Arnfjörð Bjarmason
Message 25 of 34 in “describe: dont abort too early when searching tags”
  1. describe: dont abort too early when searching tagsBenno Evers, Feb 23, 2020
  2. Junio C HamanoFeb 24, 2020
  3. benno@bmevers.deFeb 25, 2020
  4. Junio C HamanoFeb 25, 2020
  5. 00/10 describe tests: refactor & fix recent broken testsÆvar Arnfjörð Bjarmason, Feb 28, 2021
  6. Junio C HamanoMar 9, 2021
  7. Junio C HamanoMar 12, 2021
  8. 0/5 describe test fixesÆvar Arnfjörð Bjarmason, Apr 12, 2021
  9. 1/5 describe tests: improve test for --work-tree & --dirtyÆvar Arnfjörð Bjarmason, Apr 12, 2021
  10. 3/5 describe tests: don't rely on err.actual from "check_describe"Ævar Arnfjörð Bjarmason, Apr 12, 2021
  11. 2/5 describe tests: refactor away from glob matchingÆvar Arnfjörð Bjarmason, Apr 12, 2021
  12. 4/5 describe tests: fix nested "test_expect_success" callÆvar Arnfjörð Bjarmason, Apr 12, 2021
  13. 5/5 describe tests: support -C in "check_describe"Ævar Arnfjörð Bjarmason, Apr 12, 2021
  14. 0/2 svn tests: trivial "set -e" in main body of test fixesÆvar Arnfjörð Bjarmason, Apr 12, 2021
  15. 1/2 svn tests: remove legacy re-setup from init-clone testÆvar Arnfjörð Bjarmason, Apr 12, 2021
  16. 2/2 svn tests: refactor away a "set -e" in test bodyÆvar Arnfjörð Bjarmason, Apr 12, 2021
  17. 01/10 describe tests: improve test for --work-tree & --dirtyÆvar Arnfjörð Bjarmason, Feb 28, 2021
  18. 02/10 describe tests: refactor away from glob matchingÆvar Arnfjörð Bjarmason, Feb 28, 2021
  19. Junio C HamanoMar 1, 2021
  20. 04/10 test-lib functions: add an --annotated-tag option to "test_commit"Ævar Arnfjörð Bjarmason, Feb 28, 2021
  21. Junio C HamanoMar 1, 2021
  22. Ævar Arnfjörð BjarmasonMar 2, 2021
  23. Junio C HamanoMar 3, 2021
  24. 03/10 describe tests: always assert empty stderr from "describe"Ævar Arnfjörð Bjarmason, Feb 28, 2021
  25. Junio C HamanoMar 1, 2021
  26. 05/10 describe tests: convert setup to use test_commitÆvar Arnfjörð Bjarmason, Feb 28, 2021
  27. Junio C HamanoMar 1, 2021
  28. 06/10 describe tests: fix nested "test_expect_success" callÆvar Arnfjörð Bjarmason, Feb 28, 2021
  29. 08/10 svn tests: remove legacy re-setup from init-clone testÆvar Arnfjörð Bjarmason, Feb 28, 2021
  30. 07/10 describe tests: support -C in "check_describe"Ævar Arnfjörð Bjarmason, Feb 28, 2021
  31. 09/10 svn tests: refactor away a "set -e" in test bodyÆvar Arnfjörð Bjarmason, Feb 28, 2021
  32. Eric WongFeb 28, 2021
  33. 10/10 test-lib: return 1 from test_expect_{success,failure}Ævar Arnfjörð Bjarmason, Feb 28, 2021
  34. Junio C HamanoMar 1, 2021

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.