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

Re: [PATCH 2/3] t5304: use helper to report failure of "test foo = bar"

From
Jonathan Nieder <jrnieder@gmail.com>
Date
Oct 13, 2014, 16:10 UTC
Message-ID
<20141013161022.GA20520@google.com>
In-Reply-To
<20141010061114.GB15277@peff.net>
Jeff King wrote:
Show 6 quoted lines
> For small outputs, we sometimes use:
>
>   test "$(some_cmd)" = "something we expect"
>
> instead of a full test_cmp. The downside of this is that
> when it fails, there is no output at all from the script.

There's another downside to that construct: it loses the exit status from some_cmd.

[...]
Show 8 quoted lines
> --- a/t/t5304-prune.sh
> +++ b/t/t5304-prune.sh
> @@ -13,7 +13,7 @@ add_blob() {
>  	before=$(git count-objects | sed "s/ .*//") &&
>  	BLOB=$(echo aleph_0 | git hash-object -w --stdin) &&
>  	BLOB_FILE=.git/objects/$(echo $BLOB | sed "s/^../&\//") &&
> -	test $((1 + $before)) = $(git count-objects | sed "s/ .*//") &&
> +	verbose test $((1 + $before)) = $(git count-objects | sed "s/ .*//") &&
So ideally this would be something like:
	git count-objects >output &&
	verbose test "$((1 + $before))" = "$(sed "s/ .*//" output)" &&
[...]
Show 6 quoted lines
> @@ -45,11 +45,11 @@ test_expect_success 'prune --expire' '
>  
>  	add_blob &&
>  	git prune --expire=1.hour.ago &&
> -	test $((1 + $before)) = $(git count-objects | sed "s/ .*//") &&
> +	verbose test $((1 + $before)) = $(git count-objects | sed "s/ .*//") &&
and likewise elsewhere in the file.

Alternatively, maybe there could be a helper in the same spirit as test_cmp_rev?

	test_object_count () {
		git count-objects >output &&
		sed "s/ .*//" output >count &&
		printf "%s\n" "$1" >expect &&
		test_cmp expect count
	}

My two cents, Jonathan

Previous: Jeff KingNext: Jeff King
Message 4 of 26 in “"-x" tracing option for tests”
  1. 0/3 "-x" tracing option for testsJeff King, Oct 10, 2014
  2. 1/3 t5304: use test_path_is_* instead of "test -f"Jeff King, Oct 10, 2014
  3. 2/3 t5304: use helper to report failure of "test foo = bar"Jeff King, Oct 10, 2014
  4. Jonathan NiederOct 13, 2014
  5. Jeff KingOct 13, 2014
  6. Jonathan NiederOct 13, 2014
  7. Junio C HamanoOct 13, 2014
  8. Jonathan NiederOct 13, 2014
  9. Junio C HamanoOct 13, 2014
  10. Jeff KingOct 13, 2014
  11. 3/3 test-lib.sh: support -x option for shell-tracingJeff King, Oct 10, 2014
  12. Jeff KingOct 10, 2014
  13. Jeff KingOct 10, 2014
  14. 3/3 test-lib.sh: support -x option for shell-tracingJeff King, Oct 10, 2014
  15. Junio C HamanoOct 13, 2014
  16. Junio C HamanoOct 13, 2014
  17. Junio C HamanoOct 13, 2014
  18. Jeff KingOct 13, 2014
  19. Junio C HamanoOct 13, 2014
  20. Jeff KingOct 13, 2014
  21. Junio C HamanoOct 13, 2014
  22. Jeff KingOct 14, 2014
  23. Junio C HamanoOct 13, 2014
  24. Jeff KingOct 13, 2014
  25. Michael HaggertyOct 14, 2014
  26. Jeff KingOct 14, 2014

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.