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

Re: [PATCH v2 13/16] t1501: remove use of `test_might_fail cp`

From
Eric Sunshine <sunshine@sunshineco.com>
Date
Dec 20, 2019, 17:32 UTC
Message-ID
<CAPig+cSy7HX9K=fAfgQk1en4zzu1HYKbSmjSZHhAVqg-RcAcPw@mail.gmail.com>
In-Reply-To
<20191219231940.GA67903@generichostname>
On Thu, Dec 19, 2019 at 6:18 PM Denton Liu <liu.denton@gmail.com> wrote:
Show 16 quoted lines
> On Thu, Dec 19, 2019 at 05:52:56PM -0500, Eric Sunshine wrote:
> > [...] I'd rather see:
> >     { cp repo.git/sharedindex.* repo.git/repos/foo || :; } &&
> > which is the idiomatic way this sort of thing is handled in existing tests.
> >
> > While it's true that it may look a bit cryptic to people new to shell
> > scripting, as with any idiom, it's understood at a glance by people
> > familiar with it. That bit about "at a glance" is important: it's much
> > easier to comprehend idiomatic code than code which you have to spend
> > a lot of time _reading_ [...]
>
> The reason why I chose to do this was because I found myself writing the
> above many times in (currently unsent) later test cases that I cleaned
> up. As a result, I felt like it could be wrapped up more nicely with a
> helper function. That being said, if you think that open coding the
> idiom looks nicer, I can reroll to inline it.

I wouldn't say that the idiom "looks nicer", but rather that it has value specifically because it is an idiom, therefore it reduces cognitive load (as explained above).

Idioms aside, the new function test_non_git_might_fail() may increase cognitive load because the reader needs to remember its purpose and behavior since it's a black box compared to the open-coded version, yet adds no actual value. Compare that with, say, test_must_fail() which not only adds value but would significantly increase cognitive load if open-coded, thus is well justified. That's not to say that one-liner functions can't necessarily have value; a well named function or one which introduces an important abstraction may very well be worthwhile, but I can't convince myself that test_non_git_might_fail() succeeds in that way.

So, to answer your question, my preference leans toward open-coding this.
Previous: Denton LiuNext: Denton Liu
Message 45 of 64 in “t: replace incorrect test_must_fail usage (part 1)”
  1. 00/15 t: replace incorrect test_must_fail usage (part 1)Denton Liu, Dec 17, 2019
  2. 01/15 test-lib-functions: introduce test_non_git_might_fail()Denton Liu, Dec 17, 2019
  3. 03/15 t0000: replace test_must_fail with ! for run_sub_test_lib_test()Denton Liu, Dec 17, 2019
  4. Johannes SixtDec 17, 2019
  5. 05/15 t0003: use test_must_be_empty()Denton Liu, Dec 17, 2019
  6. 04/15 t0003: use named parameters in attr_check()Denton Liu, Dec 17, 2019
  7. Junio C HamanoDec 17, 2019
  8. Eric SunshineDec 17, 2019
  9. 07/15 t0020: drop redirections to /dev/nullDenton Liu, Dec 17, 2019
  10. Eric SunshineDec 17, 2019
  11. 06/15 t0003: don't use `test_must_fail attr_check`Denton Liu, Dec 17, 2019
  12. Junio C HamanoDec 17, 2019
  13. 08/15 t0020: s/test_must_fail has_cr/! has_cr/Denton Liu, Dec 17, 2019
  14. Eric SunshineDec 17, 2019
  15. 11/15 t1307: reorder `nongit test_must_fail`Denton Liu, Dec 17, 2019
  16. 10/15 t1306: convert `test_might_fail rm` to `rm -f`Denton Liu, Dec 17, 2019
  17. Junio C HamanoDec 17, 2019
  18. 09/15 t0020: use ! check_packed_refs_markedDenton Liu, Dec 17, 2019
  19. 13/15 t1409: use test_path_is_missing()Denton Liu, Dec 17, 2019
  20. Junio C HamanoDec 17, 2019
  21. 14/15 t1501: remove use of `test_might_fail cp`Denton Liu, Dec 17, 2019
  22. Eric SunshineDec 17, 2019
  23. 15/15 t1507: teach full_name() to accept `!` argDenton Liu, Dec 17, 2019
  24. Eric SunshineDec 17, 2019
  25. 12/15 t1409: let sed open its own filesDenton Liu, Dec 17, 2019
  26. Junio C HamanoDec 17, 2019
  27. 02/15 t/lib-git-p4: use test_path_is_missing()Denton Liu, Dec 17, 2019
  28. Junio C HamanoDec 17, 2019
  29. 00/16 t: replace incorrect test_must_fail usage (part 1)Denton Liu, Dec 19, 2019
  30. 01/16 test-lib-functions: introduce test_non_git_might_fail()Denton Liu, Dec 19, 2019
  31. 02/16 t/lib-git-p4: use test_path_is_missing()Denton Liu, Dec 19, 2019
  32. 06/16 t0003: don't use `test_must_fail attr_check`Denton Liu, Dec 19, 2019
  33. 07/16 t0020: don't use `test_must_fail has_cr`Denton Liu, Dec 19, 2019
  34. 04/16 t0003: use named parameters in attr_check()Denton Liu, Dec 19, 2019
  35. 03/16 t0000: replace test_must_fail with run_sub_test_lib_test_err()Denton Liu, Dec 19, 2019
  36. 10/16 t1307: reorder `nongit test_must_fail`Denton Liu, Dec 19, 2019
  37. 11/16 t1409: let sed open its own input fileDenton Liu, Dec 19, 2019
  38. 12/16 t1409: use test_path_is_missing()Denton Liu, Dec 19, 2019
  39. 09/16 t1306: convert `test_might_fail rm` to `rm -f`Denton Liu, Dec 19, 2019
  40. 08/16 t0020: use ! check_packed_refs_markedDenton Liu, Dec 19, 2019
  41. 05/16 t0003: use test_must_be_empty()Denton Liu, Dec 19, 2019
  42. 13/16 t1501: remove use of `test_might_fail cp`Denton Liu, Dec 19, 2019
  43. Eric SunshineDec 19, 2019
  44. Denton LiuDec 19, 2019
  45. Eric SunshineDec 20, 2019
  46. 14/16 t1507: stop losing return codes of git commandsDenton Liu, Dec 19, 2019
  47. 16/16 t1507: inline full_name()Denton Liu, Dec 19, 2019
  48. 15/16 t1507: run commands within test_expect_successDenton Liu, Dec 19, 2019
  49. 00/15 t: replace incorrect test_must_fail usage (part 1)Denton Liu, Dec 20, 2019
  50. 01/15 t/lib-git-p4: use test_path_is_missing()Denton Liu, Dec 20, 2019
  51. 02/15 t0000: replace test_must_fail with run_sub_test_lib_test_err()Denton Liu, Dec 20, 2019
  52. 03/15 t0003: use named parameters in attr_check()Denton Liu, Dec 20, 2019
  53. 04/15 t0003: use test_must_be_empty()Denton Liu, Dec 20, 2019
  54. 06/15 t0020: don't use `test_must_fail has_cr`Denton Liu, Dec 20, 2019
  55. 05/15 t0003: don't use `test_must_fail attr_check`Denton Liu, Dec 20, 2019
  56. 08/15 t1306: convert `test_might_fail rm` to `rm -f`Denton Liu, Dec 20, 2019
  57. 07/15 t0020: use ! check_packed_refs_markedDenton Liu, Dec 20, 2019
  58. 11/15 t1409: use test_path_is_missing()Denton Liu, Dec 20, 2019
  59. 10/15 t1409: let sed open its own input fileDenton Liu, Dec 20, 2019
  60. 12/15 t1501: remove use of `test_might_fail cp`Denton Liu, Dec 20, 2019
  61. 13/15 t1507: stop losing return codes of git commandsDenton Liu, Dec 20, 2019
  62. 09/15 t1307: reorder `nongit test_must_fail`Denton Liu, Dec 20, 2019
  63. 14/15 t1507: run commands within test_expect_successDenton Liu, Dec 20, 2019
  64. 15/15 t1507: inline full_name()Denton Liu, Dec 20, 2019

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.