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

Re: [PATCH v2] test_cmp: diagnose incorrect arguments

From
Jeff King <peff@peff.net>
Date
Oct 16, 2020, 00:17 UTC
Message-ID
<20201016001704.GA2937048@coredump.intra.peff.net>
In-Reply-To
<20200809174209.15466-1-sunshine@sunshineco.com>
On Sun, Aug 09, 2020 at 01:42:09PM -0400, Eric Sunshine wrote:
Show 10 quoted lines
> Under normal circumstances, if a test author misspells a filename passed
> to test_cmp(), the error is quickly discovered when the test fails
> unexpectedly due to test_cmp() being unable to find the file. However,
> if the test is expected to fail, as with test_expect_failure(), a
> misspelled filename as argument to test_cmp() will go unnoticed since
> the test will indeed fail, but for the wrong reason. Make it easier for
> test authors to discover such problems early by sanity-checking the
> arguments to test_cmp(). To avoid penalizing all clients of test_cmp()
> in the general case, only check for missing files if the comparison
> fails.
This patch caused some interesting confusion for me today.

I was looking at the patch from [1] which causes a test failure (and I wanted to see where it failed, etc). And I got:

  $ ./t5601-clone.sh
  ok 1 - setup
  ok 2 - clone with excess parameters (1)
  ok 3 - clone with excess parameters (2)
  ok 4 - output from clone
  ok 5 - clone does not keep pack
  ok 6 - clone checks out files
  ok 7 - clone respects GIT_WORK_TREE
  error: bug in the test script: test_cmp 'r2/.git/HEAD' missing

which was somewhat unhelpful (or at least less helpful than a regular test failure). The test in question does this:

	test_cmp r0/.git/HEAD r2/.git/HEAD &&

and expects to fail if an earlier step didn't correctly create r2. Is it a bug or misuse of test_cmp for it to do so? I could see an argument that it is, but I'm also not sure if there's a convenient alternative. The best I could come up with is:

  test_path_is_file r2/.git/HEAD &&
  test_cmp r0/.git/HEAD r2/.git/HEAD
which isn't that great.
-Peff
[1] https://lore.kernel.org/git/20200130102933.GE840531@coredump.intra.peff.net/
Previous: Jeff KingNext: Eric Sunshine
Message 15 of 20 in “test_cmp: diagnose incorrect arguments”
  1. test_cmp: diagnose incorrect argumentsEric Sunshine, Aug 9, 2020
  2. Shourya ShuklaAug 9, 2020
  3. Eric SunshineAug 9, 2020
  4. test_cmp: diagnose incorrect argumentsEric Sunshine, Aug 9, 2020
  5. Junio C HamanoAug 9, 2020
  6. Eric SunshineAug 9, 2020
  7. Junio C HamanoAug 10, 2020
  8. Taylor BlauAug 11, 2020
  9. Eric SunshineAug 11, 2020
  10. Taylor BlauAug 11, 2020
  11. Jeff KingAug 12, 2020
  12. Eric SunshineAug 12, 2020
  13. Eric SunshineAug 12, 2020
  14. Jeff KingAug 12, 2020
  15. Jeff KingOct 16, 2020
  16. Eric SunshineOct 16, 2020
  17. Junio C HamanoOct 16, 2020
  18. Junio C HamanoOct 16, 2020
  19. Junio C HamanoOct 16, 2020
  20. Eric SunshineOct 17, 2020

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.