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

Re: [PATCH 09/12] t4150: am with post-applypatch hook

From
Paul Tan <pyokagan@gmail.com>
Date
Jul 7, 2015, 06:47 UTC
Message-ID
<CACRoPnQ_bUtLuavFCdJGFAW08EY_LGV5Q=RR9Ey3jsoPk6-C3w@mail.gmail.com>
In-Reply-To
<17f64cb49c820eb41d0fb58435c91c40@www.dscho.org>

On Sun, Jul 5, 2015 at 11:58 PM, Johannes Schindelin <johannes.schindelin@gmx.de> wrote:

Show 53 quoted lines
> On 2015-07-02 20:16, Paul Tan wrote:
>
>> diff --git a/t/t4150-am.sh b/t/t4150-am.sh
>> index dd6fe81..62b678c 100755
>> --- a/t/t4150-am.sh
>> +++ b/t/t4150-am.sh
>> @@ -275,6 +275,48 @@ test_expect_success 'am with failing pre-applypatch hook' '
>>       test_cmp_rev first HEAD
>>  '
>>
>> +test_expect_success 'am with post-applypatch hook' '
>> +     test_when_finished "rm -f .git/hooks/post-applypatch" &&
>> +     rm -fr .git/rebase-apply &&
>> +     git reset --hard &&
>> +     git checkout first &&
>> +     mkdir -p .git/hooks &&
>> +     cat >.git/hooks/post-applypatch <<-\EOF &&
>> +     #!/bin/sh
>> +     git rev-parse HEAD >head.actual
>> +     git diff second >diff.actual
>> +     exit 0
>> +     EOF
>> +     chmod +x .git/hooks/post-applypatch &&
>> +     git am patch1 &&
>> +     test_path_is_missing .git/rebase-apply &&
>> +     test_cmp_rev second HEAD &&
>> +     git rev-parse second >head.expected &&
>> +     test_cmp head.expected head.actual &&
>> +     git diff second >diff.expected &&
>> +     test_cmp diff.expected diff.actual
>> +'
>> +
>> +test_expect_success 'am with failing post-applypatch hook' '
>> +     test_when_finished "rm -f .git/hooks/post-applypatch" &&
>> +     rm -fr .git/rebase-apply &&
>> +     git reset --hard &&
>> +     git checkout first &&
>> +     mkdir -p .git/hooks &&
>> +     cat >.git/hooks/post-applypatch <<-\EOF &&
>> +     #!/bin/sh
>> +     git rev-parse HEAD >head.actual
>> +     exit 1
>> +     EOF
>> +     chmod +x .git/hooks/post-applypatch &&
>> +     git am patch1 &&
>> +     test_path_is_missing .git/rebase-apply &&
>> +     git diff --exit-code second &&
>> +     test_cmp_rev second HEAD &&
>> +     git rev-parse second >head.expected &&
>> +     test_cmp head.expected head.actual
>> +'
>
> These 2 tests as well as the previous patches look to me as if they could be refactored (the paradigm is the same: add a certain hook after resetting and then apply the patch, verify that the hook ran/failed)... do you think there is a chance for that?

I had a look, but I think that while it is true that the overall sequence of each test is the same, the details differ enough that there's no obvious way to refactor the tests sensibly. For example, the contents of the hook scripts are not the same, as we need to check that the hooks are run at the correct stage of git-am execution. And as such, the verification tests are also different as well.

Junio did correctly point out though that we can shave off 2 lines if the write_script helper is used (the shebang and the chmod).

Thanks, Paul

Previous: Johannes SchindelinNext: Johannes Schindelin
Message 17 of 26 in “Improve git-am test coverage”
  1. 00/12 Improve git-am test coveragePaul Tan, Jul 2, 2015
  2. 01/12 t4150: am.messageid really adds the message idPaul Tan, Jul 2, 2015
  3. Paolo BonziniJul 2, 2015
  4. Junio C HamanoJul 6, 2015
  5. 02/12 t4150: am fails if index is dirtyPaul Tan, Jul 2, 2015
  6. Johannes SchindelinJul 5, 2015
  7. Paul TanJul 7, 2015
  8. 03/12 t4151: am --abort will keep dirty index intactPaul Tan, Jul 2, 2015
  9. 04/12 t4150: am refuses patches when pausedPaul Tan, Jul 2, 2015
  10. 05/12 t4150: am --resolved fails if index has no changesPaul Tan, Jul 2, 2015
  11. 06/12 t4150: am --resolved fails if index has unmerged entriesPaul Tan, Jul 2, 2015
  12. 07/12 t4150: am with applypatch-msg hookPaul Tan, Jul 2, 2015
  13. Junio C HamanoJul 6, 2015
  14. 08/12 t4150: am with pre-applypatch hookPaul Tan, Jul 2, 2015
  15. 09/12 t4150: am with post-applypatch hookPaul Tan, Jul 2, 2015
  16. Johannes SchindelinJul 5, 2015
  17. Paul TanJul 7, 2015
  18. Johannes SchindelinJul 7, 2015
  19. 10/12 t4150: tests for am --[no-]scissorsPaul Tan, Jul 2, 2015
  20. 11/12 t3418: non-interactive rebase --continue with rerere enabledPaul Tan, Jul 2, 2015
  21. 12/12 t3901: test git-am encoding conversionPaul Tan, Jul 2, 2015
  22. Johannes SixtJul 8, 2015
  23. Paul TanJul 14, 2015
  24. Stefan BellerJul 3, 2015
  25. Johannes SchindelinJul 5, 2015
  26. Junio C HamanoJul 6, 2015

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.