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

Re: [PATCH v2 1/4] t4014: clean up style

From
Eric Sunshine <sunshine@sunshineco.com>
Date
Aug 20, 2019, 02:41 UTC
Message-ID
<CAPig+cSzq7KB4y+wuuVtVS7oi=uK2FY0+UkfOXx1jp-oe=fs4Q@mail.gmail.com>
In-Reply-To
<76a0a274fde564f709d294acd7d6da17167f05b5.1566258525.git.liu.denton@gmail.com>
On Mon, Aug 19, 2019 at 7:53 PM Denton Liu <liu.denton@gmail.com> wrote:
Show 29 quoted lines
> In Git's tests, there is typically no space between the redirection
> operator and the filename. Remove these spaces.
>
> Since output is silenced when running without `-v` and debugging
> output is useful with `-v`, remove redirections to /dev/null.
>
> Change here-docs from `<<\EOF` to `<<-\EOF` so that they can be indented
> along with the rest of the test case.
>
> Convert all instances of `cnt=$(... | wc -l) && test $cnt = N` into
> uses of `test_line_count()`.
>
> For style, move the ending sq of test cases onto its own line whenever
> they do not conform.
>
> Rename output files from "expected" to "expect" to conform with the
> usual convention.
>
> Finally, refactor to remove Git commands upstream of pipe as well as Git
> commands that are in a non-variable-assignment subshell (e.g. `echo
> "base-commit: $(git rev-parse HEAD)"`. This way, if an invocation of a
> Git command fails, the return code won't be lost. Keep upstream non-Git
> commands since we have to assume a base level of sanity.
>
> Signed-off-by: Denton Liu <liu.denton@gmail.com>
> ---
> This patch is getting a little unwieldy. Perhaps we could split it into
> several smaller patches? Unfortunately, I'm not really sure where a
> logical place to split it would be.

The bullet points in the commit message, each of which is a distinct change, give a strong hint as to how the commit could be split into smaller pieces. It would make repeated review easier (though I'm not sure it's worth re-rolling just for that).

Show 12 quoted lines
> diff --git a/t/t4014-format-patch.sh b/t/t4014-format-patch.sh
> @@ -62,26 +63,24 @@ test_expect_success setup '
>  test_expect_success "format-patch --ignore-if-in-upstream" '
>
>         git format-patch --stdout \
>                 --ignore-if-in-upstream master..side >patch1 &&
> -       cnt=$(grep "^From " patch1 | wc -l) &&
> -       test $cnt = 2
> -
> +       grep "^From " patch1 >from1 &&
> +       test_line_count = 2 from1
>  '

Here you've removed the blank line following the body before the closing quote, which brings the formatting more in line with current style, however, you could do the same with the blank line before the body. Ditto for other tests.

Another style fix would be to change the double quotes in the test title to single quotes (here and in other tests).

Show 18 quoted lines
> @@ -357,7 +369,7 @@ test_expect_success 'reroll count (-v)' '
>  check_threading () {
>         expect="$1" &&
>         shift &&
> -       (git format-patch --stdout "$@"; echo $? > status.out) |
> +       git format-patch --stdout "$@" >patch &&
>         # Prints everything between the Message-ID and In-Reply-To,
>         # and replaces all Message-ID-lookalikes by a sequence number
>         perl -ne '
> @@ -372,12 +384,11 @@ check_threading () {
>                         print;
>                 }
>                 print "---\n" if /^From /i;
> -       ' > actual &&
> -       test 0 = "$(cat status.out)" &&
> +       ' <patch >actual &&
>         test_cmp "$expect" actual
>  }

If you do break this patch into smaller pieces, this might deserve its own patch (or not) because it requires a bit of extra reasoning by the reviewer.

Show 7 quoted lines
> @@ -852,20 +866,21 @@ test_expect_success 'format-patch --ignore-if-in-upstream HEAD' '
> -git_version="$(git --version | sed "s/.* //")"
> -
>  signature() {
> +       git_version="$(git --version >version && sed "s/.* //" version)" &&
>         printf "%s\n%s\n\n" "-- " "${1:-$git_version}"
>  }

Windows folks are not going to like you for this change since process creation is so expensive on that platform, and the point of setting that variable globally was to avoid repeated invocation (especially since the output of "git --version" won't change). This function appears to be invoked only three times presently, but that number could increase in the future as new tests are added. Consequently, it might be best to drop this change.

Previous: Denton LiuNext: Denton Liu
Message 3 of 91 in “format-patch: learn --infer-cover-subject option”
  1. 0/4 format-patch: learn --infer-cover-subject optionDenton Liu, Aug 19, 2019
  2. 1/4 t4014: clean up styleDenton Liu, Aug 19, 2019
  3. Eric SunshineAug 20, 2019
  4. 2/4 Doc: add more detail for git-format-patchDenton Liu, Aug 19, 2019
  5. Eric SunshineAug 20, 2019
  6. Denton LiuAug 20, 2019
  7. 3/4 config/format.txt: make clear the default value of format.coverLetterDenton Liu, Aug 19, 2019
  8. Eric SunshineAug 20, 2019
  9. 4/4 format-patch: learn --infer-cover-letter optionDenton Liu, Aug 19, 2019
  10. Eric SunshineAug 20, 2019
  11. 00/13 format-patch: learn --infer-cover-subject option (also t4014 cleanup)Denton Liu, Aug 20, 2019
  12. 01/13 t4014: drop unnecessary blank lines from test casesDenton Liu, Aug 20, 2019
  13. 02/13 t4014: s/expected/expect/Denton Liu, Aug 20, 2019
  14. Eric SunshineAug 20, 2019
  15. 03/13 t4014: move closing sq onto its own lineDenton Liu, Aug 20, 2019
  16. 04/13 t4014: use sq for test case namesDenton Liu, Aug 20, 2019
  17. 05/13 t4014: remove spaces after redirect operatorsDenton Liu, Aug 20, 2019
  18. 06/13 t4014: use indentable here-docsDenton Liu, Aug 20, 2019
  19. 07/13 t4014: drop redirections to /dev/nullDenton Liu, Aug 20, 2019
  20. 08/13 t4014: use test_line_count() where possibleDenton Liu, Aug 20, 2019
  21. 09/13 t4014: remove confusing pipe in check_threading()Denton Liu, Aug 20, 2019
  22. 10/13 t4014: stop losing return codes of git commandsDenton Liu, Aug 20, 2019
  23. Denton LiuAug 20, 2019
  24. Johannes SixtAug 20, 2019
  25. 11/13 Doc: add more detail for git-format-patchDenton Liu, Aug 20, 2019
  26. Junio C HamanoAug 21, 2019
  27. 12/13 config/format.txt: specify default value of format.coverLetterDenton Liu, Aug 20, 2019
  28. 13/13 format-patch: learn --infer-cover-subject optionDenton Liu, Aug 20, 2019
  29. Junio C HamanoAug 21, 2019
  30. Denton LiuAug 23, 2019
  31. Philip OakleyAug 23, 2019
  32. Junio C HamanoAug 23, 2019
  33. Denton LiuAug 24, 2019
  34. Philip OakleyAug 24, 2019
  35. Junio C HamanoAug 26, 2019
  36. Junio C HamanoAug 26, 2019
  37. Junio C HamanoAug 26, 2019
  38. Junio C HamanoAug 22, 2019
  39. Denton LiuAug 23, 2019
  40. Junio C HamanoAug 23, 2019
  41. 00/13 format-patch: clean up tests and documentationDenton Liu, Aug 24, 2019
  42. 01/13 t4014: drop unnecessary blank lines from test casesDenton Liu, Aug 24, 2019
  43. 02/13 t4014: s/expected/expect/Denton Liu, Aug 24, 2019
  44. 03/13 t4014: move closing sq onto its own lineDenton Liu, Aug 24, 2019
  45. 04/13 t4014: use sq for test case namesDenton Liu, Aug 24, 2019
  46. 05/13 t4014: remove spaces after redirect operatorsDenton Liu, Aug 24, 2019
  47. 06/13 t4014: use indentable here-docsDenton Liu, Aug 24, 2019
  48. 07/13 t4014: drop redirections to /dev/nullDenton Liu, Aug 24, 2019
  49. 08/13 t4014: let sed open its own filesDenton Liu, Aug 24, 2019
  50. Eric SunshineAug 26, 2019
  51. 09/13 t4014: use test_line_count() where possibleDenton Liu, Aug 24, 2019
  52. 10/13 t4014: remove confusing pipe in check_threading()Denton Liu, Aug 24, 2019
  53. 11/13 t4014: stop losing return codes of git commandsDenton Liu, Aug 24, 2019
  54. 12/13 Doc: add more detail for git-format-patchDenton Liu, Aug 24, 2019
  55. Junio C HamanoAug 26, 2019
  56. Junio C HamanoAug 26, 2019
  57. 13/13 config/format.txt: specify default value of format.coverLetterDenton Liu, Aug 24, 2019
  58. Denton LiuAug 24, 2019
  59. Junio C HamanoAug 26, 2019
  60. 00/13 format-patch: clean up tests and documentationDenton Liu, Aug 27, 2019
  61. 01/13 t4014: drop unnecessary blank lines from test casesDenton Liu, Aug 27, 2019
  62. 02/13 t4014: s/expected/expect/Denton Liu, Aug 27, 2019
  63. 03/13 t4014: move closing sq onto its own lineDenton Liu, Aug 27, 2019
  64. 04/13 t4014: use sq for test case namesDenton Liu, Aug 27, 2019
  65. 05/13 t4014: remove spaces after redirect operatorsDenton Liu, Aug 27, 2019
  66. 06/13 t4014: use indentable here-docsDenton Liu, Aug 27, 2019
  67. 07/13 t4014: drop redirections to /dev/nullDenton Liu, Aug 27, 2019
  68. 08/13 t4014: let sed open its own filesDenton Liu, Aug 27, 2019
  69. 09/13 t4014: use test_line_count() where possibleDenton Liu, Aug 27, 2019
  70. 10/13 t4014: remove confusing pipe in check_threading()Denton Liu, Aug 27, 2019
  71. 11/13 t4014: stop losing return codes of git commandsDenton Liu, Aug 27, 2019
  72. 12/13 Doc: add more detail for git-format-patchDenton Liu, Aug 27, 2019
  73. 13/13 config/format.txt: specify default value of format.coverLetterDenton Liu, Aug 27, 2019
  74. Denton LiuSep 4, 2019
  75. Junio C HamanoSep 5, 2019
  76. Denton LiuSep 5, 2019
  77. 0/3 format-patch: learn --cover-from-description optionDenton Liu, Oct 11, 2019
  78. 1/3 format-patch: remove erroneous and conditionDenton Liu, Oct 11, 2019
  79. 2/3 format-patch: use enum variablesDenton Liu, Oct 11, 2019
  80. Junio C HamanoOct 12, 2019
  81. 3/3 format-patch: teach --cover-from-description optionDenton Liu, Oct 11, 2019
  82. Junio C HamanoOct 12, 2019
  83. 4/3 fixup! format-patch: teach --cover-from-description optionDenton Liu, Oct 11, 2019
  84. Junio C HamanoOct 12, 2019
  85. 0/3 format-patch: learn --cover-from-description optionDenton Liu, Oct 14, 2019
  86. 1/3 format-patch: change erroneous and conditionDenton Liu, Oct 14, 2019
  87. Junio C HamanoOct 15, 2019
  88. Denton LiuOct 15, 2019
  89. 2/3 format-patch: use enum variablesDenton Liu, Oct 14, 2019
  90. 3/3 format-patch: teach --cover-from-description optionDenton Liu, Oct 14, 2019
  91. Junio C HamanoOct 15, 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.