From: "René Scharfe" <l.s.r@web.de>
To: git@vger.kernel.org
Cc: Jeff King <peff@peff.net>, Junio C Hamano <gitster@pobox.com>
Subject: [PATCH 02/10] t4209: factor out helper function test_log()
Date: Sat, 22 Mar 2014 18:15:52 +0100 [thread overview]
Message-ID: <1395508560-19893-3-git-send-email-l.s.r@web.de> (raw)
In-Reply-To: <1395508560-19893-1-git-send-email-l.s.r@web.de>
Twelve tests in t4209 follow the same simple pattern for description,
git log call and checking. Extract that shared logic into a helper
function named test_log. Test specifications become a lot more
compact, new tests can be added more easily.
Signed-off-by: Rene Scharfe <l.s.r@web.de>
---
t/t4209-log-pickaxe.sh | 92 +++++++++++++++++++-------------------------------
1 file changed, 34 insertions(+), 58 deletions(-)
diff --git a/t/t4209-log-pickaxe.sh b/t/t4209-log-pickaxe.sh
index ff668b5..9f3bb40 100755
--- a/t/t4209-log-pickaxe.sh
+++ b/t/t4209-log-pickaxe.sh
@@ -3,6 +3,28 @@
test_description='log --grep/--author/--regexp-ignore-case/-S/-G'
. ./test-lib.sh
+test_log() {
+ expect=$1
+ kind=$2
+ needle=$3
+ shift 3
+ rest=$@
+
+ case $expect in
+ expect_nomatch)
+ match=nomatch
+ ;;
+ *)
+ match=match
+ ;;
+ esac
+
+ test_expect_success "log $kind${rest:+ $rest} ($match)" "
+ git log $rest $kind $needle --format=%H >actual &&
+ test_cmp $expect actual
+ "
+}
+
test_expect_success setup '
>expect_nomatch &&
@@ -44,35 +66,12 @@ test_expect_success 'log --author -i' '
test_cmp expect_second actual
'
-test_expect_success 'log -G (nomatch)' '
- git log -Gpicked --format=%H >actual &&
- test_cmp expect_nomatch actual
-'
-
-test_expect_success 'log -G (match)' '
- git log -GPicked --format=%H >actual &&
- test_cmp expect_second actual
-'
-
-test_expect_success 'log -G --regexp-ignore-case (nomatch)' '
- git log --regexp-ignore-case -Gpickle --format=%H >actual &&
- test_cmp expect_nomatch actual
-'
-
-test_expect_success 'log -G -i (nomatch)' '
- git log -i -Gpickle --format=%H >actual &&
- test_cmp expect_nomatch actual
-'
-
-test_expect_success 'log -G --regexp-ignore-case (match)' '
- git log --regexp-ignore-case -Gpicked --format=%H >actual &&
- test_cmp expect_second actual
-'
-
-test_expect_success 'log -G -i (match)' '
- git log -i -Gpicked --format=%H >actual &&
- test_cmp expect_second actual
-'
+test_log expect_nomatch -G picked
+test_log expect_second -G Picked
+test_log expect_nomatch -G pickle --regexp-ignore-case
+test_log expect_nomatch -G pickle -i
+test_log expect_second -G picked --regexp-ignore-case
+test_log expect_second -G picked -i
test_expect_success 'log -G --textconv (missing textconv tool)' '
echo "* diff=test" >.gitattributes &&
@@ -87,35 +86,12 @@ test_expect_success 'log -G --no-textconv (missing textconv tool)' '
rm .gitattributes
'
-test_expect_success 'log -S (nomatch)' '
- git log -Spicked --format=%H >actual &&
- test_cmp expect_nomatch actual
-'
-
-test_expect_success 'log -S (match)' '
- git log -SPicked --format=%H >actual &&
- test_cmp expect_second actual
-'
-
-test_expect_success 'log -S --regexp-ignore-case (match)' '
- git log --regexp-ignore-case -Spicked --format=%H >actual &&
- test_cmp expect_second actual
-'
-
-test_expect_success 'log -S -i (match)' '
- git log -i -Spicked --format=%H >actual &&
- test_cmp expect_second actual
-'
-
-test_expect_success 'log -S --regexp-ignore-case (nomatch)' '
- git log --regexp-ignore-case -Spickle --format=%H >actual &&
- test_cmp expect_nomatch actual
-'
-
-test_expect_success 'log -S -i (nomatch)' '
- git log -i -Spickle --format=%H >actual &&
- test_cmp expect_nomatch actual
-'
+test_log expect_nomatch -S picked
+test_log expect_second -S Picked
+test_log expect_second -S picked --regexp-ignore-case
+test_log expect_second -S picked -i
+test_log expect_nomatch -S pickle --regexp-ignore-case
+test_log expect_nomatch -S pickle -i
test_expect_success 'log -S --textconv (missing textconv tool)' '
echo "* diff=test" >.gitattributes &&
--
1.9.1
next prev parent reply other threads:[~2014-03-22 17:16 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-22 17:15 [PATCH 00/10] pickaxe: honor -i when used with -S and --pickaxe-regex; cleanups René Scharfe
2014-03-22 17:15 ` [PATCH 01/10] t4209: set up expectations up front René Scharfe
2014-03-22 17:15 ` René Scharfe [this message]
2014-03-22 17:15 ` [PATCH 03/10] t4209: factor out helper function test_log_icase() René Scharfe
2014-03-24 18:22 ` Junio C Hamano
2014-03-24 21:10 ` Jeff King
2014-03-24 21:45 ` René Scharfe
2014-03-24 22:09 ` Junio C Hamano
2014-03-22 17:15 ` [PATCH 04/10] t4209: use helper functions to test --grep René Scharfe
2014-03-24 18:22 ` Junio C Hamano
2014-03-24 21:14 ` Jeff King
2014-03-24 21:42 ` René Scharfe
2014-03-22 17:15 ` [PATCH 05/10] t4209: use helper functions to test --author René Scharfe
2014-03-22 17:15 ` [PATCH 06/10] pickaxe: honor -i when used with -S and --pickaxe-regex René Scharfe
2014-03-22 17:15 ` [PATCH 07/10] pickaxe: merge diffcore_pickaxe_grep() and diffcore_pickaxe_count() into diffcore_pickaxe() René Scharfe
2014-03-22 17:15 ` [PATCH 08/10] pickaxe: move pickaxe() after pickaxe_match() René Scharfe
2014-03-24 21:21 ` Jeff King
2014-03-22 17:15 ` [PATCH 09/10] pickaxe: call strlen only when necessary in diffcore_pickaxe_count() René Scharfe
2014-03-22 17:16 ` [PATCH 10/10] pickaxe: simplify kwset loop in contains() René Scharfe
2014-03-24 18:19 ` [PATCH 00/10] pickaxe: honor -i when used with -S and --pickaxe-regex; cleanups Junio C Hamano
2014-03-24 21:22 ` Jeff King
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1395508560-19893-3-git-send-email-l.s.r@web.de \
--to=l.s.r@web.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=peff@peff.net \
/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.
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 NNTP newsgroup(s).