git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Paul Tan <pyokagan@gmail.com>
To: Johannes Schindelin <johannes.schindelin@gmx.de>
Cc: Git List <git@vger.kernel.org>,
	Stefan Beller <sbeller@google.com>,
	Junio C Hamano <gitster@pobox.com>
Subject: Re: [PATCH 09/12] t4150: am with post-applypatch hook
Date: Tue, 7 Jul 2015 14:47:19 +0800	[thread overview]
Message-ID: <CACRoPnQ_bUtLuavFCdJGFAW08EY_LGV5Q=RR9Ey3jsoPk6-C3w@mail.gmail.com> (raw)
In-Reply-To: <17f64cb49c820eb41d0fb58435c91c40@www.dscho.org>

On Sun, Jul 5, 2015 at 11:58 PM, Johannes Schindelin
<johannes.schindelin@gmx.de> wrote:
> 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

  reply	other threads:[~2015-07-07  6:47 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-02 18:16 [PATCH 00/12] Improve git-am test coverage Paul Tan
2015-07-02 18:16 ` [PATCH 01/12] t4150: am.messageid really adds the message id Paul Tan
2015-07-02 18:41   ` Paolo Bonzini
2015-07-06 17:38     ` Junio C Hamano
2015-07-02 18:16 ` [PATCH 02/12] t4150: am fails if index is dirty Paul Tan
2015-07-05 15:38   ` Johannes Schindelin
2015-07-07  6:35     ` Paul Tan
2015-07-02 18:16 ` [PATCH 03/12] t4151: am --abort will keep dirty index intact Paul Tan
2015-07-02 18:16 ` [PATCH 04/12] t4150: am refuses patches when paused Paul Tan
2015-07-02 18:16 ` [PATCH 05/12] t4150: am --resolved fails if index has no changes Paul Tan
2015-07-02 18:16 ` [PATCH 06/12] t4150: am --resolved fails if index has unmerged entries Paul Tan
2015-07-02 18:16 ` [PATCH 07/12] t4150: am with applypatch-msg hook Paul Tan
2015-07-06 17:46   ` Junio C Hamano
2015-07-02 18:16 ` [PATCH 08/12] t4150: am with pre-applypatch hook Paul Tan
2015-07-02 18:16 ` [PATCH 09/12] t4150: am with post-applypatch hook Paul Tan
2015-07-05 15:58   ` Johannes Schindelin
2015-07-07  6:47     ` Paul Tan [this message]
2015-07-07  8:07       ` Johannes Schindelin
2015-07-02 18:16 ` [PATCH 10/12] t4150: tests for am --[no-]scissors Paul Tan
2015-07-02 18:16 ` [PATCH 11/12] t3418: non-interactive rebase --continue with rerere enabled Paul Tan
2015-07-02 18:16 ` [PATCH 12/12] t3901: test git-am encoding conversion Paul Tan
2015-07-08 20:44   ` Johannes Sixt
2015-07-14  9:43     ` Paul Tan
2015-07-03 16:24 ` [PATCH 00/12] Improve git-am test coverage Stefan Beller
2015-07-05 16:02   ` Johannes Schindelin
2015-07-06 20:42     ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CACRoPnQ_bUtLuavFCdJGFAW08EY_LGV5Q=RR9Ey3jsoPk6-C3w@mail.gmail.com' \
    --to=pyokagan@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=johannes.schindelin@gmx.de \
    --cc=sbeller@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).