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

Re: [PATCH 12/25] t7810: use test_expect_code() instead of hand-rolled comparison

From
Eric Sunshine <sunshine@sunshineco.com>
Date
Jul 2, 2018, 21:12 UTC
Message-ID
<CAPig+cTr_nCYkGn6DVtODOa+ufsr4V006FmdvqL63PzvpARvUA@mail.gmail.com>
In-Reply-To
<CAGZ79kZFSAe1NL3EVKtbSm6E9PvhajWdrrbwDNMm2K5FRH7m-Q@mail.gmail.com>
On Mon, Jul 2, 2018 at 2:14 PM Stefan Beller <sbeller@google.com> wrote:
Show 19 quoted lines
> On Sun, Jul 1, 2018 at 5:25 PM Eric Sunshine <sunshine@sunshineco.com> wrote:
> >  test_expect_success 'grep from a subdirectory to search wider area (2)' '
> >         mkdir -p s &&
> >         (
> > -               cd s || exit 1
> > -               ( git grep xxyyzz .. >out ; echo $? >status )
> > -               ! test -s out &&
> > -               test 1 = $(cat status)
> > +               cd s &&
> > +               test_expect_code 1 git grep xxyyzz .. >out &&
> > +               ! test -s out
> >         )
>
> Further optimisation would be possible if I understand the code correctly:
>
>     test_expect_code git -C s grep xxyyzz .. >../out
>     test_must_be_empty out
>
> (dropping the subshell entirely)

I did consider dropping the subshell in favor of -C, however, decided to keep it since the subshell has value by making it very explicit to the reader that this git-grep command is running in a subdirectory (which is what this test is all about). Contrast that with -C which is easy to overlook and might not fully convince the reader that the command's entire execution is within the subdirectory, whereas there is no question that the entire execution of git-diff in "(cd s && git-diff ...)" occurs in the subdirectory.

I can make the test_must_be_empty() change if I re-roll.
Previous: Stefan BellerNext: Eric Sunshine
Message 25 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.