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

Re: [PATCH 3/4] rev-parse test: use test_cmp instead of "test" builtin

From
Junio C Hamano <gitster@pobox.com>
Date
Sep 3, 2013, 20:01 UTC
Message-ID
<xmqqk3ixr7xy.fsf@gitster.dls.corp.google.com>
In-Reply-To
<20130903170715.GD29921@google.com>
Jonathan Nieder <jrnieder@gmail.com> writes:
Show 8 quoted lines
> Use test_cmp instead of passing two command substitutions to the
> "test" builtin.  This way:
>
>  - when tests fail, they can print a helpful diff if run with
>    "--verbose"
>
>  - the argument order "test_cmp expect actual" feels natural,
>    unlike test <known> = <unknown> that seems a little backwards
I do not mind to drop s/a little // here, by the way.
Show 26 quoted lines
>  - the exit status from invoking git is checked, so if rev-parse
>    starts segfaulting then the test will notice and fail
>
> Use a custom function for this instead of test_cmp_rev to emphasize
> that we are testing the output from "git rev-parse" with certain
> arguments, not checking that the revisions are equal in abstract.
>
> Reported-by: Felipe Contreras <felipe.contreras@gmail.com>
> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
> ---
>  t/t6101-rev-parse-parents.sh | 33 +++++++++++++++++++--------------
>  1 file changed, 19 insertions(+), 14 deletions(-)
>
> diff --git a/t/t6101-rev-parse-parents.sh b/t/t6101-rev-parse-parents.sh
> index 416067c..8a6ff66 100755
> --- a/t/t6101-rev-parse-parents.sh
> +++ b/t/t6101-rev-parse-parents.sh
> @@ -8,6 +8,12 @@ test_description='Test git rev-parse with different parent options'
>  . ./test-lib.sh
>  . "$TEST_DIRECTORY"/lib-t6000.sh # t6xxx specific functions
>  
> +test_cmp_rev_output () {
> +	git rev-parse --verify "$1" >expect &&
> +	eval "$2" >actual &&
> +	test_cmp expect actual
> +}

After applying this patch and running "git show | grep test_cmp_rev_output", I notice that the second is always "git rev-parse <something>". Do we still need to eval these, or would it be sufficient to do

        test_cmp_rev_output () {
                git rev-parse --verify "$1" >expect &&
                git rev-parse --verify "$2" >actual &&
                test_cmp expect actual
        }
here, and make users like so:
	-	test_cmp_rev_output tags/start "git rev-parse start^0"
	+	test_cmp_rev_output tags/start start^0
Am I missing something?
Previous: Jonathan NiederNext: Jonathan Nieder
Message 17 of 45 in “t: rev-parse-parents: cleanups”
  1. 0/4 t: rev-parse-parents: cleanupsFelipe Contreras, Sep 2, 2013
  2. 1/4 t: rev-parse-parents: fix styleFelipe Contreras, Sep 2, 2013
  3. 2/4 t: rev-parse-parents: fix weird ! notationFelipe Contreras, Sep 2, 2013
  4. 3/4 t: rev-parse-parents: avoid yoda conditionsFelipe Contreras, Sep 2, 2013
  5. Jeff KingSep 3, 2013
  6. SZEDER GáborSep 3, 2013
  7. Jeff KingSep 3, 2013
  8. Felipe ContrerasSep 3, 2013
  9. SZEDER GáborSep 3, 2013
  10. Felipe ContrerasSep 3, 2013
  11. SZEDER GáborSep 3, 2013
  12. 0/4 Re: [PATCH 3/4] t: rev-parse-parents: avoid yoda conditionsJonathan Nieder, Sep 3, 2013
  13. 1/4 rev-parse test: modernize quoting and whitespaceJonathan Nieder, Sep 3, 2013
  14. 2/4 rev-parse test: use test_must_fail, not "if <command>; then false; fi"Jonathan Nieder, Sep 3, 2013
  15. Felipe ContrerasSep 3, 2013
  16. 3/4 rev-parse test: use test_cmp instead of "test" builtinJonathan Nieder, Sep 3, 2013
  17. Junio C HamanoSep 3, 2013
  18. Jonathan NiederSep 4, 2013
  19. Felipe ContrerasSep 3, 2013
  20. 4/4 rev-parse test: use standard test functions for setupJonathan Nieder, Sep 3, 2013
  21. 4/4 rev-parse test: use standard test functions for setupJonathan Nieder, Sep 3, 2013
  22. Jeff KingSep 3, 2013
  23. Felipe ContrerasSep 3, 2013
  24. Junio C HamanoSep 4, 2013
  25. John KeepingSep 4, 2013
  26. Junio C HamanoSep 4, 2013
  27. Jeff KingSep 4, 2013
  28. Junio C HamanoSep 4, 2013
  29. Felipe ContrerasSep 8, 2013
  30. Jeff KingSep 8, 2013
  31. Felipe ContrerasSep 8, 2013
  32. Felipe ContrerasSep 8, 2013
  33. Jeff KingSep 8, 2013
  34. Felipe ContrerasSep 8, 2013
  35. Jeff KingSep 8, 2013
  36. Felipe ContrerasSep 8, 2013
  37. Jeff KingSep 8, 2013
  38. Felipe ContrerasSep 9, 2013
  39. Junio C HamanoSep 8, 2013
  40. Felipe ContrerasSep 8, 2013
  41. Philip OakleySep 8, 2013
  42. Junio C HamanoSep 3, 2013
  43. Junio C HamanoSep 3, 2013
  44. Felipe ContrerasSep 3, 2013
  45. 4/4 t: rev-parse-parents: simplify setupFelipe Contreras, Sep 2, 2013

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.