All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.