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

Re: [PATCH 21/25] t5000-t5999: fix broken &&-chains

From
Jeff King <peff@peff.net>
Date
Jul 12, 2018, 18:19 UTC
Message-ID
<20180712181955.GA13268@sigill.intra.peff.net>
In-Reply-To
<CAPig+cRYNo_KL02LN1LOa79Zm2oYZqbnBHJ=KDA3oaF4pVfjcA@mail.gmail.com>
On Thu, Jul 12, 2018 at 01:44:49PM -0400, Eric Sunshine wrote:
Show 18 quoted lines
> On Thu, Jul 12, 2018 at 8:37 AM SZEDER Gábor <szeder.dev@gmail.com> wrote:
> > The change below should be squashed into this patch to fix a
> > previously unnoticed broken &&-chain.  I think you missed it, because
> > this test script is rather expensive and you didn't run it with
> > GIT_TEST_CLONE_2GB=YesPlease.
> >
> > diff --git a/t/t5608-clone-2gb.sh b/t/t5608-clone-2gb.sh
> > @@ -23,7 +23,7 @@ test_expect_success CLONE_2GB 'setup' '
> > -               echo "M 100644 :$i $i" >> commit
> > +               echo "M 100644 :$i $i" >> commit &&
> 
> Thanks for finding this. I tried to get as much coverage as possible
> by installing packages I don't normally have installed (Apache, cvs,
> cvsps, Subversion, Perforce, etc.) and even temporarily modified a
> script or two to force it run when I simply couldn't meet some
> prerequisite, thus reducing the "skipped" messages to a minimum, but I
> wasn't even aware of this prerequisite since I never saw a "skipped"
> message for it.

I think in theory we should be able to lint _every_ test, even if we're not running it. After all, the point is that a proper linting runs zero commands.

That said, it may not be worth the implementation effort. The linting happens at a pretty low-level, and we've already decided to skip tests long before then (even for single prereqs, let alone skip_all cases where we exit the script early).

Show 5 quoted lines
> Looking at it more closely, I think the reason it didn't come to my
> attention is that this script doesn't use the standard skip_all="..."
> mechanism for skipping the tests but instead "rolls its own", and
> apparently 'prove' simply swallowed (or was unable to produce) an
> overall "skipped" message for this script.

Yeah, that is a bit funny. For a whole-test skip like this, I think skip_all is easier to read, as it is immediately apparent to the reader that nothing that _doesn't_ meet that prereq should be in the file. So I'd be happy to see it switched (though it's not _that_ big a deal, so leaving it is fine, too).

By the way, "prove --directives" can help with finding individual skipped tests.

-Peff
Previous: Eric SunshineNext: Junio C Hamano
Message 36 of 52 in “fix buggy tests, modernize tests, fix broken &&-chains”
  1. 00/25 fix buggy tests, modernize tests, fix broken &&-chainsEric Sunshine, Jul 2, 2018
  2. 01/25 t: use test_might_fail() instead of manipulating exit code manuallyEric Sunshine, Jul 2, 2018
  3. Stefan BellerJul 2, 2018
  4. Eric SunshineJul 2, 2018
  5. Junio C HamanoJul 3, 2018
  6. 04/25 t: drop unnecessary terminating semicolon in subshellEric Sunshine, Jul 2, 2018
  7. Junio C HamanoJul 3, 2018
  8. 05/25 t/lib-submodule-update: fix "absorbing" testEric Sunshine, Jul 2, 2018
  9. 03/25 t: use sane_unset() rather than 'unset' with broken &&-chainEric Sunshine, Jul 2, 2018
  10. 02/25 t: use test_write_lines() instead of series of 'echo' commandsEric Sunshine, Jul 2, 2018
  11. Stefan BellerJul 2, 2018
  12. 08/25 t5505: modernize and simplify hard-to-digest testEric Sunshine, Jul 2, 2018
  13. 07/25 t5406: use write_script() instead of birthing shell script manuallyEric Sunshine, Jul 2, 2018
  14. 10/25 t7201: drop pointless "exit 0" at end of subshellEric Sunshine, Jul 2, 2018
  15. 11/25 t7400: fix broken "submodule add/reconfigure --force" testEric Sunshine, Jul 2, 2018
  16. Johannes SchindelinJul 16, 2018
  17. Johannes SchindelinJul 16, 2018
  18. Eric SunshineJul 16, 2018
  19. Junio C HamanoJul 16, 2018
  20. Eric SunshineJul 16, 2018
  21. Johannes SchindelinJul 17, 2018
  22. Junio C HamanoJul 17, 2018
  23. 12/25 t7810: use test_expect_code() instead of hand-rolled comparisonEric Sunshine, Jul 2, 2018
  24. Stefan BellerJul 2, 2018
  25. Eric SunshineJul 2, 2018
  26. 15/25 t0000-t0999: fix broken &&-chainsEric Sunshine, Jul 2, 2018
  27. 16/25 t1000-t1999: fix broken &&-chainsEric Sunshine, Jul 2, 2018
  28. 17/25 t2000-t2999: fix broken &&-chainsEric Sunshine, Jul 2, 2018
  29. 25/25 t9119: fix broken &&-chainsEric Sunshine, Jul 2, 2018
  30. 24/25 t9000-t9999: fix broken &&-chainsEric Sunshine, Jul 2, 2018
  31. 23/25 t7000-t7999: fix broken &&-chainsEric Sunshine, Jul 2, 2018
  32. 22/25 t6000-t6999: fix broken &&-chainsEric Sunshine, Jul 2, 2018
  33. 21/25 t5000-t5999: fix broken &&-chainsEric Sunshine, Jul 2, 2018
  34. SZEDER GáborJul 12, 2018
  35. Eric SunshineJul 12, 2018
  36. Jeff KingJul 12, 2018
  37. Junio C HamanoJul 12, 2018
  38. Junio C HamanoJul 12, 2018
  39. Eric SunshineJul 12, 2018
  40. Junio C HamanoJul 12, 2018
  41. Eric SunshineJul 12, 2018
  42. SZEDER GáborJul 17, 2018
  43. 20/25 t4000-t4999: fix broken &&-chainsEric Sunshine, Jul 2, 2018
  44. 19/25 t3030: fix broken &&-chainsEric Sunshine, Jul 2, 2018
  45. 18/25 t3000-t3999: fix broken &&-chainsEric Sunshine, Jul 2, 2018
  46. 14/25 t9814: simplify convoluted check that command correctly errors outEric Sunshine, Jul 2, 2018
  47. 09/25 t6036: fix broken "merge fails but has appropriate contents" testsEric Sunshine, Jul 2, 2018
  48. 06/25 t5405: use test_must_fail() instead of checking exit code manuallyEric Sunshine, Jul 2, 2018
  49. 13/25 t9001: fix broken "invoke hook" testEric Sunshine, Jul 2, 2018
  50. Stefan BellerJul 2, 2018
  51. Eric SunshineJul 2, 2018
  52. Junio C HamanoJul 3, 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.