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

Re: [PATCH v2 12/12] test-lib: split up and deprecate test_create_repo()

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
Apr 17, 2021, 21:45 UTC
Message-ID
<87h7k41t6i.fsf@evledraar.gmail.com>
In-Reply-To
<20210417154218.GS2947267@szeder.dev>
On Sat, Apr 17 2021, SZEDER Gábor wrote:
Show 61 quoted lines
> On Sat, Apr 17, 2021 at 02:52:45PM +0200, Ævar Arnfjörð Bjarmason wrote:
>> Remove various redundant or obsolete code from the test_create_repo()
>> function, and split up its use in test-lib.sh from what tests need
>> from it, leaving us with a pass-through wrapper for "git init" in
>> test-lib-functions.sh
>> 
>> Reasons for why we can remove various code from test_create_repo():
>> 
>>  1. "mkdir -p" isn't needed because "git init" itself will create
>>     leading directories if needed.
>> 
>>  2. Since we're now a simple wrapper for "git init" we don't need to
>>     check that we have only one argument. If someone wants to run
>>     "test_create_repo --bare x" that's OK.
>> 
>>  3. We won't ever hit that "Cannot setup test environment"
>>     error.
>> 
>>     Checking the test environment sanity when doing "git init" dates
>>     back to eea420693be (t0000: catch trivial pilot errors.,
>>     2005-12-10) and 2ccd2027b01 (trivial: check, if t/trash directory
>>     was successfully created, 2006-01-05).
>> 
>>     We can also see it in another form a bit later in my own
>>     0d314ce834d (test-lib: use subshell instead of cd $new && .. && cd
>>     $old, 2010-08-30).
>> 
>>     But since 2006f0adaee (t/test-lib: make sure Git has already been
>>     built, 2012-09-17) we already check if we have a built git
>>     earlier.
>> 
>>     The one thing this was testing after that 2012 change was that
>>     we'd just built "git", but not "git-init", but since
>>     3af4c7156c4 (tests: respect GIT_TEST_INSTALLED when initializing
>>     repositories, 2018-11-12) we invoke "git", not "git-init".
>> 
>>     So all of that's been checked already, and we don't need to
>>     re-check it here.
>> 
>>  4. We don't need to move .git/hooks out of the way.
>> 
>>     That dates back to c09a69a83e3 (Disable hooks during tests.,
>>     2005-10-16), since then hooks became disabled by default in
>>     f98f8cbac01 (Ship sample hooks with .sample suffix, 2008-06-24).
>> 
>>     So the hooks were already disabled by default, but as can be seen
>>     from "mkdir .git/hooks" changes various tests needed to re-setup
>>     that directory. Now they no longer do.
>> 
>>  5. Since we don't need to move the .git/hooks directory
>
> Since we don't change directory anymore...
>
>> we don't need
>>     the subshell here either.
>> 
>>     That wasn't really needed for the .git/hooks either, but was being
>>     done for the convenience of not having to quote the path to the
>>     repository as we moved the hooks.
>
> And then this dubious explanation will not be necessary.

Why dubious? That's why we had the subshell-ing. See 0d314ce834 (test-lib: use subshell instead of cd $new && .. && cd $old, 2010-08-30).

I don't mind rewording or not including some of this verbosity per-se, but I wonder why you're honing in on the subshell part in particular. Maybe there's something I'm missing...

The goal of the commit messsage is to point-by-point tear apart facets of the previous behavior, and assure the reader that e.g. the subshelling isn't needed for some other subtle reason.

Show 32 quoted lines
>>  6. We can drop the --template argument and instead rely on the
>>     GIT_TEMPLATE_DIR set to the same path earlier in test-lib.sh. See
>>     8683a45d669 (Introduce GIT_TEMPLATE_DIR, 2006-12-19)
>> 
>>  7. We only needed that ">&3 2>&4" redirection when invoked from
>>     test-lib.sh, and the same goes for needing the full path to "git".
>> 
>>     Let's move that special behavior into test-lib.sh itself.
>
> Quoting myself from my review of the previous version of this patch:
>
>   PATH is already set up to start with GIT_TEST_INSTALLED and/or
>   GIT_EXEC_PATH before 'test_create_repo' is called to init the repo in
>   the trash directory, so we could simply run 'git' and rely on PATH
>   lookup choosing the right executable.
>
>> diff --git a/t/test-lib.sh b/t/test-lib.sh
>> index 9ebb595c335..f73c3c6fc72 100644
>> --- a/t/test-lib.sh
>> +++ b/t/test-lib.sh
>> @@ -1364,7 +1364,10 @@ rm -fr "$TRASH_DIRECTORY" || {
>>  remove_trash=t
>>  if test -z "$TEST_NO_CREATE_REPO"
>>  then
>> -	test_create_repo "$TRASH_DIRECTORY"
>> +	"${GIT_TEST_INSTALLED:-$GIT_BUILD_DIR}/git$X" \
>> +		init \
>> +		"$TRASH_DIRECTORY" >&3 2>&4 ||
>
> So this could be just:
>
>   git init "$TRASH_DIRECTORY" >&3 2>&4 ||

Ah yes, I see that now. FWIW I managed to misread that in the last round as it applying only once we were calling the test-lib-functions.sh helper, but I see it's finishe setting up a few lines before the test_create_repo in test-lib.sh too, nice.

Previous: SZEDER GáborNext: SZEDER Gábor
Message 64 of 175 in “test-lib.sh: new test_commit args, simplification & fixes”
  1. 00/16 test-lib.sh: new test_commit args, simplification & fixesÆvar Arnfjörð Bjarmason, Apr 12, 2021
  2. 01/16 check-non-portable-shell: complain about "test" a/-o instead of &&/||Ævar Arnfjörð Bjarmason, Apr 12, 2021
  3. Eric SunshineApr 12, 2021
  4. Matthieu MoyApr 12, 2021
  5. Junio C HamanoApr 12, 2021
  6. Junio C HamanoApr 12, 2021
  7. Eric SunshineApr 12, 2021
  8. 02/16 test-lib: bring $remove_trash out of retirementÆvar Arnfjörð Bjarmason, Apr 12, 2021
  9. Junio C HamanoApr 12, 2021
  10. Junio C HamanoApr 12, 2021
  11. 04/16 test-lib-functions: reword "test_commit --append" docsÆvar Arnfjörð Bjarmason, Apr 12, 2021
  12. 03/16 test-lib tests: remove dead GIT_TEST_FRAMEWORK_SELFTEST variableÆvar Arnfjörð Bjarmason, Apr 12, 2021
  13. 05/16 test-lib-functions: document test_commit --no-tagÆvar Arnfjörð Bjarmason, Apr 12, 2021
  14. Eric SunshineApr 12, 2021
  15. 06/16 test-lib functions: add an --annotated-tag option to "test_commit"Ævar Arnfjörð Bjarmason, Apr 12, 2021
  16. Đoàn Trần Công DanhApr 15, 2021
  17. 07/16 describe tests: convert setup to use test_commitÆvar Arnfjörð Bjarmason, Apr 12, 2021
  18. 08/16 test-lib functions: add --printf option to test_commitÆvar Arnfjörð Bjarmason, Apr 12, 2021
  19. Eric SunshineApr 12, 2021
  20. Junio C HamanoApr 12, 2021
  21. Eric SunshineApr 12, 2021
  22. Junio C HamanoApr 12, 2021
  23. Ævar Arnfjörð BjarmasonApr 15, 2021
  24. Eric SunshineApr 15, 2021
  25. Junio C HamanoApr 15, 2021
  26. 09/16 submodule tests: use symbolic-ref --short to discover branch nameÆvar Arnfjörð Bjarmason, Apr 12, 2021
  27. 10/16 test-lib: reformat argument list in test_create_repo()Ævar Arnfjörð Bjarmason, Apr 12, 2021
  28. 11/16 test-lib: do not show advice about init.defaultBranch under --verboseÆvar Arnfjörð Bjarmason, Apr 12, 2021
  29. SZEDER GáborApr 15, 2021
  30. 12/16 test-lib: modernize test_create_repo() functionÆvar Arnfjörð Bjarmason, Apr 12, 2021
  31. Junio C HamanoApr 12, 2021
  32. Ævar Arnfjörð BjarmasonApr 15, 2021
  33. SZEDER GáborApr 15, 2021
  34. SZEDER GáborApr 16, 2021
  35. Ævar Arnfjörð BjarmasonApr 16, 2021
  36. 13/16 test-lib-functions: normalize test_path_is_missing() debuggingÆvar Arnfjörð Bjarmason, Apr 12, 2021
  37. 14/16 test-lib-functions: use "return 1" instead of "false"Ævar Arnfjörð Bjarmason, Apr 12, 2021
  38. Junio C HamanoApr 12, 2021
  39. 15/16 Revert and amend "test-lib-functions: assert correct parameter count"Ævar Arnfjörð Bjarmason, Apr 12, 2021
  40. Junio C HamanoApr 12, 2021
  41. Ævar Arnfjörð BjarmasonApr 15, 2021
  42. Andreas SchwabApr 15, 2021
  43. Junio C HamanoApr 15, 2021
  44. Ævar Arnfjörð BjarmasonApr 16, 2021
  45. SZEDER GáborApr 15, 2021
  46. Junio C HamanoApr 15, 2021
  47. Ævar Arnfjörð BjarmasonApr 16, 2021
  48. 16/16 test-lib-functions: remove last two parameter count assertionsÆvar Arnfjörð Bjarmason, Apr 12, 2021
  49. Junio C HamanoApr 12, 2021
  50. Junio C HamanoApr 12, 2021
  51. 00/12 test-lib.sh: new test_commit args, simplification & fixesÆvar Arnfjörð Bjarmason, Apr 17, 2021
  52. 03/12 test-lib tests: remove dead GIT_TEST_FRAMEWORK_SELFTEST variableÆvar Arnfjörð Bjarmason, Apr 17, 2021
  53. 01/12 check-non-portable-shell: check for "test <cond> -a/-o <cond>"Ævar Arnfjörð Bjarmason, Apr 17, 2021
  54. 04/12 test-lib-functions: reword "test_commit --append" docsÆvar Arnfjörð Bjarmason, Apr 17, 2021
  55. 05/12 test-lib-functions: document test_commit --no-tagÆvar Arnfjörð Bjarmason, Apr 17, 2021
  56. 07/12 describe tests: convert setup to use test_commitÆvar Arnfjörð Bjarmason, Apr 17, 2021
  57. 06/12 test-lib functions: add an --annotated option to "test_commit"Ævar Arnfjörð Bjarmason, Apr 17, 2021
  58. 08/12 test-lib functions: add --printf option to test_commitÆvar Arnfjörð Bjarmason, Apr 17, 2021
  59. 09/12 submodule tests: use symbolic-ref --short to discover branch nameÆvar Arnfjörð Bjarmason, Apr 17, 2021
  60. 10/12 test-lib: reformat argument list in test_create_repo()Ævar Arnfjörð Bjarmason, Apr 17, 2021
  61. 11/12 test-lib: do not show advice about init.defaultBranch under --verboseÆvar Arnfjörð Bjarmason, Apr 17, 2021
  62. 12/12 test-lib: split up and deprecate test_create_repo()Ævar Arnfjörð Bjarmason, Apr 17, 2021
  63. SZEDER GáborApr 17, 2021
  64. Ævar Arnfjörð BjarmasonApr 17, 2021
  65. SZEDER GáborApr 20, 2021
  66. 02/12 test-lib: bring $remove_trash out of retirementÆvar Arnfjörð Bjarmason, Apr 17, 2021
  67. 0/3 test-lib-functions.sh: trickery to make -x less verboseÆvar Arnfjörð Bjarmason, Apr 17, 2021
  68. 1/3 test-lib-functions: normalize test_path_is_missing() debuggingÆvar Arnfjörð Bjarmason, Apr 17, 2021
  69. 2/3 Revert and amend "test-lib-functions: assert correct parameter count"Ævar Arnfjörð Bjarmason, Apr 17, 2021
  70. Eric SunshineApr 18, 2021
  71. Ævar Arnfjörð BjarmasonApr 20, 2021
  72. 3/3 test-lib-functions: remove last two parameter count assertionsÆvar Arnfjörð Bjarmason, Apr 17, 2021
  73. 00/12 test-lib.sh: new test_commit args, simplification & fixesÆvar Arnfjörð Bjarmason, Apr 20, 2021
  74. 01/12 check-non-portable-shell: check for "test <cond> -a/-o <cond>"Ævar Arnfjörð Bjarmason, Apr 20, 2021
  75. Junio C HamanoApr 20, 2021
  76. Ævar Arnfjörð BjarmasonApr 21, 2021
  77. Đoàn Trần Công DanhApr 21, 2021
  78. 1/2 t6400: check exit status of ls-filesĐoàn Trần Công Danh, Apr 21, 2021
  79. 2/2 t6402: check exit status of ls-filesĐoàn Trần Công Danh, Apr 21, 2021
  80. Eric SunshineApr 21, 2021
  81. Eric SunshineApr 21, 2021
  82. Junio C HamanoApr 21, 2021
  83. Đoàn Trần Công DanhApr 22, 2021
  84. Ævar Arnfjörð BjarmasonApr 22, 2021
  85. Eric SunshineApr 22, 2021
  86. Đoàn Trần Công DanhApr 22, 2021
  87. Ævar Arnfjörð BjarmasonApr 22, 2021
  88. Ævar Arnfjörð BjarmasonApr 21, 2021
  89. Junio C HamanoApr 21, 2021
  90. Junio C HamanoApr 21, 2021
  91. 02/12 test-lib: bring $remove_trash out of retirementÆvar Arnfjörð Bjarmason, Apr 20, 2021
  92. Junio C HamanoApr 20, 2021
  93. 03/12 test-lib tests: remove dead GIT_TEST_FRAMEWORK_SELFTEST variableÆvar Arnfjörð Bjarmason, Apr 20, 2021
  94. 05/12 test-lib-functions: document test_commit --no-tagÆvar Arnfjörð Bjarmason, Apr 20, 2021
  95. 04/12 test-lib-functions: reword "test_commit --append" docsÆvar Arnfjörð Bjarmason, Apr 20, 2021
  96. 06/12 test-lib functions: add an --annotated option to "test_commit"Ævar Arnfjörð Bjarmason, Apr 20, 2021
  97. 07/12 describe tests: convert setup to use test_commitÆvar Arnfjörð Bjarmason, Apr 20, 2021
  98. 08/12 test-lib functions: add --printf option to test_commitÆvar Arnfjörð Bjarmason, Apr 20, 2021
  99. 09/12 submodule tests: use symbolic-ref --short to discover branch nameÆvar Arnfjörð Bjarmason, Apr 20, 2021
  100. 10/12 test-lib: reformat argument list in test_create_repo()Ævar Arnfjörð Bjarmason, Apr 20, 2021
  101. 11/12 test-lib: do not show advice about init.defaultBranch under --verboseÆvar Arnfjörð Bjarmason, Apr 20, 2021
  102. 12/12 test-lib: split up and deprecate test_create_repo()Ævar Arnfjörð Bjarmason, Apr 20, 2021
  103. 00/11 test-lib.sh: new test_commit args, simplification & fixesÆvar Arnfjörð Bjarmason, Apr 21, 2021
  104. 02/11 test-lib tests: remove dead GIT_TEST_FRAMEWORK_SELFTEST variableÆvar Arnfjörð Bjarmason, Apr 21, 2021
  105. 01/11 test-lib: bring $remove_trash out of retirementÆvar Arnfjörð Bjarmason, Apr 21, 2021
  106. 03/11 test-lib-functions: reword "test_commit --append" docsÆvar Arnfjörð Bjarmason, Apr 21, 2021
  107. 04/11 test-lib-functions: document test_commit --no-tagÆvar Arnfjörð Bjarmason, Apr 21, 2021
  108. 05/11 test-lib functions: add an --annotated option to "test_commit"Ævar Arnfjörð Bjarmason, Apr 21, 2021
  109. 07/11 test-lib functions: add --printf option to test_commitÆvar Arnfjörð Bjarmason, Apr 21, 2021
  110. 06/11 describe tests: convert setup to use test_commitÆvar Arnfjörð Bjarmason, Apr 21, 2021
  111. 08/11 submodule tests: use symbolic-ref --short to discover branch nameÆvar Arnfjörð Bjarmason, Apr 21, 2021
  112. 09/11 test-lib: reformat argument list in test_create_repo()Ævar Arnfjörð Bjarmason, Apr 21, 2021
  113. 10/11 test-lib: do not show advice about init.defaultBranch under --verboseÆvar Arnfjörð Bjarmason, Apr 21, 2021
  114. 11/11 test-lib: split up and deprecate test_create_repo()Ævar Arnfjörð Bjarmason, Apr 21, 2021
  115. SZEDER GáborApr 21, 2021
  116. Ævar Arnfjörð BjarmasonApr 22, 2021
  117. 00/11 test-lib.sh: new test_commit args, simplification & fixesÆvar Arnfjörð Bjarmason, Apr 23, 2021
  118. 01/11 test-lib: bring $remove_trash out of retirementÆvar Arnfjörð Bjarmason, Apr 23, 2021
  119. Đoàn Trần Công DanhMay 6, 2021
  120. 02/11 test-lib tests: remove dead GIT_TEST_FRAMEWORK_SELFTEST variableÆvar Arnfjörð Bjarmason, Apr 23, 2021
  121. 03/11 test-lib-functions: reword "test_commit --append" docsÆvar Arnfjörð Bjarmason, Apr 23, 2021
  122. 04/11 test-lib-functions: document test_commit --no-tagÆvar Arnfjörð Bjarmason, Apr 23, 2021
  123. 05/11 test-lib functions: add an --annotated option to "test_commit"Ævar Arnfjörð Bjarmason, Apr 23, 2021
  124. 06/11 describe tests: convert setup to use test_commitÆvar Arnfjörð Bjarmason, Apr 23, 2021
  125. Đoàn Trần Công DanhMay 6, 2021
  126. 07/11 test-lib functions: add --printf option to test_commitÆvar Arnfjörð Bjarmason, Apr 23, 2021
  127. Đoàn Trần Công DanhMay 6, 2021
  128. 08/11 submodule tests: use symbolic-ref --short to discover branch nameÆvar Arnfjörð Bjarmason, Apr 23, 2021
  129. 09/11 test-lib: reformat argument list in test_create_repo()Ævar Arnfjörð Bjarmason, Apr 23, 2021
  130. 10/11 test-lib: do not show advice about init.defaultBranch under --verboseÆvar Arnfjörð Bjarmason, Apr 23, 2021
  131. 11/11 test-lib: split up and deprecate test_create_repo()Ævar Arnfjörð Bjarmason, Apr 23, 2021
  132. Junio C HamanoApr 29, 2021
  133. Ævar Arnfjörð BjarmasonMay 6, 2021
  134. Đoàn Trần Công DanhMay 6, 2021
  135. 00/11 test-lib.sh: new test_commit args, simplification & fixesÆvar Arnfjörð Bjarmason, May 10, 2021
  136. 01/11 test-lib: bring $remove_trash out of retirementÆvar Arnfjörð Bjarmason, May 10, 2021
  137. 02/11 test-lib tests: remove dead GIT_TEST_FRAMEWORK_SELFTEST variableÆvar Arnfjörð Bjarmason, May 10, 2021
  138. 03/11 test-lib-functions: reword "test_commit --append" docsÆvar Arnfjörð Bjarmason, May 10, 2021
  139. 04/11 test-lib-functions: document test_commit --no-tagÆvar Arnfjörð Bjarmason, May 10, 2021
  140. 05/11 test-lib functions: add an --annotated option to "test_commit"Ævar Arnfjörð Bjarmason, May 10, 2021
  141. 06/11 describe tests: convert setup to use test_commitÆvar Arnfjörð Bjarmason, May 10, 2021
  142. 07/11 test-lib functions: add --printf option to test_commitÆvar Arnfjörð Bjarmason, May 10, 2021
  143. 08/11 submodule tests: use symbolic-ref --short to discover branch nameÆvar Arnfjörð Bjarmason, May 10, 2021
  144. 10/11 test-lib: do not show advice about init.defaultBranch under --verboseÆvar Arnfjörð Bjarmason, May 10, 2021
  145. 09/11 test-lib: reformat argument list in test_create_repo()Ævar Arnfjörð Bjarmason, May 10, 2021
  146. 11/11 test-lib: split up and deprecate test_create_repo()Ævar Arnfjörð Bjarmason, May 10, 2021
  147. Felipe ContrerasMay 13, 2021
  148. Ævar Arnfjörð BjarmasonMay 13, 2021
  149. Felipe ContrerasMay 13, 2021
  150. Ævar Arnfjörð BjarmasonMay 13, 2021
  151. Felipe ContrerasMay 13, 2021
  152. Đoàn Trần Công DanhMay 12, 2021
  153. Junio C HamanoMay 12, 2021
  154. 0/3 test-lib-functions.sh: trickery to make -x less verboseÆvar Arnfjörð Bjarmason, Apr 20, 2021
  155. 1/3 test-lib-functions: normalize test_path_is_missing() debuggingÆvar Arnfjörð Bjarmason, Apr 20, 2021
  156. 3/3 test-lib-functions: remove last two parameter count assertionsÆvar Arnfjörð Bjarmason, Apr 20, 2021
  157. Junio C HamanoApr 20, 2021
  158. 2/3 Revert and amend "test-lib-functions: assert correct parameter count"Ævar Arnfjörð Bjarmason, Apr 20, 2021
  159. Eric SunshineApr 20, 2021
  160. Ævar Arnfjörð BjarmasonApr 21, 2021
  161. 0/5 test-lib-functions.sh: trickery to make -x less verboseÆvar Arnfjörð Bjarmason, Apr 21, 2021
  162. 2/5 Revert and amend "test-lib-functions: assert correct parameter count"Ævar Arnfjörð Bjarmason, Apr 21, 2021
  163. 1/5 test-lib-functions: normalize test_path_is_missing() debuggingÆvar Arnfjörð Bjarmason, Apr 21, 2021
  164. 3/5 test helpers: remove unused test-tool path-utils slice-testsÆvar Arnfjörð Bjarmason, Apr 21, 2021
  165. Ævar Arnfjörð BjarmasonApr 21, 2021
  166. 4/5 test-helpers: rename "path-utils is_valid_path" to "is-valid-paths"Ævar Arnfjörð Bjarmason, Apr 21, 2021
  167. 5/5 test-helpers: split "file-size" into "file-size(s)"Ævar Arnfjörð Bjarmason, Apr 21, 2021
  168. 0/4 test-lib-functions.sh: trickery to make -x less verboseÆvar Arnfjörð Bjarmason, Apr 23, 2021
  169. 1/4 test-lib-functions: normalize test_path_is_missing() debuggingÆvar Arnfjörð Bjarmason, Apr 23, 2021
  170. Junio C HamanoApr 29, 2021
  171. 2/4 Revert and amend "test-lib-functions: assert correct parameter count"Ævar Arnfjörð Bjarmason, Apr 23, 2021
  172. Junio C HamanoApr 29, 2021
  173. Felipe ContrerasApr 29, 2021
  174. 4/4 test-helpers: split "file-size" into "file-size(s)"Ævar Arnfjörð Bjarmason, Apr 23, 2021
  175. 3/4 test-helpers: rename "path-utils is_valid_path" to "is-valid-paths"Ævar Arnfjörð Bjarmason, Apr 23, 2021

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.