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

Re: [PATCH] test_must_be_empty: make sure the file exists, not just empty

From
Jeff King <peff@peff.net>
Date
Feb 27, 2018, 22:08 UTC
Message-ID
<20180227220821.GC11187@sigill.intra.peff.net>
In-Reply-To
<xmqqh8q2p1ha.fsf_-_@gitster-ct.c.googlers.com>
On Tue, Feb 27, 2018 at 01:27:29PM -0800, Junio C Hamano wrote:
Show 20 quoted lines
> The helper function test_must_be_empty is meant to make sure the
> given file is empty, but its implementation is:
> 
> 	if test -s "$1"
> 	then
> 		... not empty, we detected a failure ...
> 	fi
> 
> Surely, the file having non-zero size is a sign that the condition
> "the file must be empty" is violated, but it misses the case where
> the file does not even exist.  It is an accident waiting to happen
> with a buggy test like this:
> 
> 	git frotz 2>error-message &&
> 	test_must_be_empty errro-message
> 
> that won't get caught until you deliberately break 'git frotz' and
> notice why the test does not fail.
> 
> Signed-off-by: Junio C Hamano <gitster@pobox.com>

This seems like a huge and obvious improvement to me. I'm amazed it hasn't come up before (and that this doesn't reveal any existing typos like the one you showed).

-Peff
Previous: Stefan BellerNext: SZEDER Gábor
Message 16 of 26 in “Make the test suite pass with '-x' and /bin/sh”
  1. 00/11 Make the test suite pass with '-x' and /bin/shSZEDER Gábor, Feb 23, 2018
  2. 02/11 t: add means to disable '-x' tracing for individual test scriptsSZEDER Gábor, Feb 23, 2018
  3. 01/11 t: prevent '-x' tracing from interfering with test helpers' stderrSZEDER Gábor, Feb 23, 2018
  4. SZEDER GáborFeb 24, 2018
  5. t: prevent '-x' tracing from interfering with test helpers' stderrSZEDER Gábor, Feb 25, 2018
  6. 03/11 t1507-rev-parse-upstream: don't check the stderr of a shell functionSZEDER Gábor, Feb 23, 2018
  7. 05/11 t5500-fetch-pack: don't check the stderr of a subshellSZEDER Gábor, Feb 23, 2018
  8. 07/11 t5570-git-daemon: don't check the stderr of a subshellSZEDER Gábor, Feb 23, 2018
  9. 11/11 travis-ci: run tests with '-x' tracingSZEDER Gábor, Feb 23, 2018
  10. 04/11 t3030-merge-recursive: don't check the stderr of a subshellSZEDER Gábor, Feb 23, 2018
  11. Eric SunshineFeb 24, 2018
  12. Junio C HamanoFeb 27, 2018
  13. Junio C HamanoFeb 27, 2018
  14. test_must_be_empty: make sure the file exists, not just emptyJunio C Hamano, Feb 27, 2018
  15. Stefan BellerFeb 27, 2018
  16. Jeff KingFeb 27, 2018
  17. SZEDER GáborFeb 27, 2018
  18. Junio C HamanoFeb 27, 2018
  19. SZEDER GáborFeb 28, 2018
  20. 10/11 t/README: add a note about don't saving stderr of compound commandsSZEDER Gábor, Feb 23, 2018
  21. 08/11 t9903-bash-prompt: don't check the stderr of __git_ps1()SZEDER Gábor, Feb 23, 2018
  22. 06/11 t5526: use $TRASH_DIRECTORY to specify the path of GIT_TRACE log fileSZEDER Gábor, Feb 23, 2018
  23. 09/11 t1510-repo-setup: mark as untraceable with '-x'SZEDER Gábor, Feb 23, 2018
  24. SZEDER GáborMar 2, 2018
  25. Jeff KingMar 3, 2018
  26. SZEDER GáborMar 5, 2018

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.