From: Paul Tan <pyokagan@gmail.com>
To: git@vger.kernel.org
Cc: Johannes Schindelin <johannes.schindelin@gmx.de>,
Stefan Beller <sbeller@google.com>, Paul Tan <pyokagan@gmail.com>
Subject: [PATCH v2 00/12] Improve git-am test coverage
Date: Tue, 7 Jul 2015 22:08:22 +0800 [thread overview]
Message-ID: <1436278114-28057-1-git-send-email-pyokagan@gmail.com> (raw)
This is a re-roll of [v1]. Thanks Junio, Johannes, Paolo, Stefan for the
reviews last round. Interdiff below.
Previous versions:
[v1] http://thread.gmane.org/gmane.comp.version-control.git/273254
Increase test coverage of git-am.sh to help prevent regressions that could arise
from the rewrite of git-am.sh to C. This patch series, along with
pt/am-foreign, improved test coverage as measured by kcov from 56.5%[1] to
67.3%[2].
No tests for git-am's interactive mode, though, as test_terminal does not seem
to attach a pseudo-tty to stdin(?), thus making git-am's "test -t 0" check fail.
This is part of my GSoC project to rewrite git-am.sh to a C builtin[3].
[1] http://pyokagan.github.io/git/20150430132408-a75942b//kcov-merged/git-am.eb79278e.html
[2] http://pyokagan.github.io/git/20150702173751-2fdae08//kcov-merged/git-am.eb79278e.html
[3] https://gist.github.com/pyokagan/1b7b0d1f4dab6ba3cef1
Paul Tan (12):
t4150: am.messageid really adds the message id
t4150: am fails if index is dirty
t4151: am --abort will keep dirty index intact
t4150: am refuses patches when paused
t4150: am --resolved fails if index has no changes
t4150: am --resolved fails if index has unmerged entries
t4150: am with applypatch-msg hook
t4150: am with pre-applypatch hook
t4150: am with post-applypatch hook
t4150: tests for am --[no-]scissors
t3418: non-interactive rebase --continue with rerere enabled
t3901: test git-am encoding conversion
t/t3418-rebase-continue.sh | 19 ++++
t/t3901-i18n-patch.sh | 62 +++++++++++++
t/t4150-am.sh | 217 +++++++++++++++++++++++++++++++++++++++++++++
t/t4151-am-abort.sh | 15 ++++
4 files changed, 313 insertions(+)
diff --git a/t/t4150-am.sh b/t/t4150-am.sh
index 94e7c18..67fbf0e 100755
--- a/t/t4150-am.sh
+++ b/t/t4150-am.sh
@@ -182,9 +182,10 @@ test_expect_success 'am applies patch correctly' '
'
test_expect_success 'am fails if index is dirty' '
- test_when_finished "rm -fr dirtyfile" &&
+ test_when_finished "rm -f dirtyfile" &&
rm -fr .git/rebase-apply &&
- git checkout -f first &&
+ git reset --hard &&
+ git checkout first &&
echo dirtyfile >dirtyfile &&
git add dirtyfile &&
test_must_fail git am patch1 &&
@@ -231,12 +232,10 @@ test_expect_success 'am with applypatch-msg hook' '
git reset --hard &&
git checkout first &&
mkdir -p .git/hooks &&
- cat >.git/hooks/applypatch-msg <<-\EOF &&
- #!/bin/sh
+ write_script .git/hooks/applypatch-msg <<-\EOF &&
cat "$1" >actual-msg &&
echo hook-message >"$1"
EOF
- chmod +x .git/hooks/applypatch-msg &&
git am patch1 &&
test_path_is_missing .git/rebase-apply &&
git diff --exit-code second &&
@@ -253,11 +252,9 @@ test_expect_success 'am with failing applypatch-msg hook' '
git reset --hard &&
git checkout first &&
mkdir -p .git/hooks &&
- cat >.git/hooks/applypatch-msg <<-\EOF &&
- #!/bin/sh
+ write_script .git/hooks/applypatch-msg <<-\EOF &&
exit 1
EOF
- chmod +x .git/hooks/applypatch-msg &&
test_must_fail git am patch1 &&
test_path_is_dir .git/rebase-apply &&
git diff --exit-code first &&
@@ -270,17 +267,14 @@ test_expect_success 'am with pre-applypatch hook' '
git reset --hard &&
git checkout first &&
mkdir -p .git/hooks &&
- cat >.git/hooks/pre-applypatch <<-\EOF &&
- #!/bin/sh
+ write_script .git/hooks/pre-applypatch <<-\EOF &&
git diff first >diff.actual
exit 0
EOF
- chmod +x .git/hooks/pre-applypatch &&
git am patch1 &&
test_path_is_missing .git/rebase-apply &&
git diff --exit-code second &&
test_cmp_rev second HEAD &&
- test_cmp_rev second^ HEAD^ &&
git diff first..second >diff.expected &&
test_cmp diff.expected diff.actual
'
@@ -291,11 +285,9 @@ test_expect_success 'am with failing pre-applypatch hook' '
git reset --hard &&
git checkout first &&
mkdir -p .git/hooks &&
- cat >.git/hooks/pre-applypatch <<-\EOF &&
- #!/bin/sh
+ write_script .git/hooks/pre-applypatch <<-\EOF &&
exit 1
EOF
- chmod +x .git/hooks/pre-applypatch &&
test_must_fail git am patch1 &&
test_path_is_dir .git/rebase-apply &&
git diff --exit-code second &&
@@ -308,13 +300,11 @@ test_expect_success 'am with post-applypatch hook' '
git reset --hard &&
git checkout first &&
mkdir -p .git/hooks &&
- cat >.git/hooks/post-applypatch <<-\EOF &&
- #!/bin/sh
+ write_script .git/hooks/post-applypatch <<-\EOF &&
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 &&
@@ -330,12 +320,10 @@ test_expect_success 'am with failing post-applypatch hook' '
git reset --hard &&
git checkout first &&
mkdir -p .git/hooks &&
- cat >.git/hooks/post-applypatch <<-\EOF &&
- #!/bin/sh
+ write_script .git/hooks/post-applypatch <<-\EOF &&
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 &&
@@ -782,7 +770,8 @@ test_expect_success 'am --message-id really adds the message id' '
test_expect_success 'am.messageid really adds the message id' '
rm -fr .git/rebase-apply &&
- git checkout -f HEAD^ &&
+ git reset --hard &&
+ git checkout HEAD^ &&
test_config am.messageid true &&
git am patch1.eml &&
test_path_is_missing .git/rebase-apply &&
--
2.5.0.rc1.76.gf60a929
next reply other threads:[~2015-07-07 14:08 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-07 14:08 Paul Tan [this message]
2015-07-07 14:08 ` [PATCH v2 01/12] t4150: am.messageid really adds the message id Paul Tan
2015-07-07 14:08 ` [PATCH v2 02/12] t4150: am fails if index is dirty Paul Tan
2015-07-07 14:08 ` [PATCH v2 03/12] t4151: am --abort will keep dirty index intact Paul Tan
2015-07-07 14:08 ` [PATCH v2 04/12] t4150: am refuses patches when paused Paul Tan
2015-07-07 14:08 ` [PATCH v2 05/12] t4150: am --resolved fails if index has no changes Paul Tan
2015-07-07 14:08 ` [PATCH v2 06/12] t4150: am --resolved fails if index has unmerged entries Paul Tan
2015-07-07 14:08 ` [PATCH v2 07/12] t4150: am with applypatch-msg hook Paul Tan
2015-07-07 14:08 ` [PATCH v2 08/12] t4150: am with pre-applypatch hook Paul Tan
2015-07-07 14:08 ` [PATCH v2 09/12] t4150: am with post-applypatch hook Paul Tan
2015-07-07 14:08 ` [PATCH v2 10/12] t4150: tests for am --[no-]scissors Paul Tan
2015-07-07 14:08 ` [PATCH v2 11/12] t3418: non-interactive rebase --continue with rerere enabled Paul Tan
2015-07-07 14:08 ` [PATCH v2 12/12] t3901: test git-am encoding conversion Paul Tan
2015-07-07 18:34 ` [PATCH v2 00/12] Improve git-am test coverage Johannes Schindelin
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=1436278114-28057-1-git-send-email-pyokagan@gmail.com \
--to=pyokagan@gmail.com \
--cc=git@vger.kernel.org \
--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).