aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRené Scharfe <l.s.r@web.de>2014-03-22 18:15:52 +0100
committerJunio C Hamano <gitster@pobox.com>2014-03-24 15:11:44 -0700
commit57b6dc76f28544737b5aa6bddafa2ee5f42047d1 (patch)
tree2d7a23f11ea446634c998502b2c1626787fca5bf
parentb0f7c7cf865e6b14ccf90f34b6fde0d08af6b50b (diff)
downloadgit-57b6dc76f28544737b5aa6bddafa2ee5f42047d1.tar.gz
git-57b6dc76f28544737b5aa6bddafa2ee5f42047d1.tar.xz
t4209: factor out helper function test_log()
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> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-xt/t4209-log-pickaxe.sh100
1 files changed, 42 insertions, 58 deletions
diff --git a/t/t4209-log-pickaxe.sh b/t/t4209-log-pickaxe.sh
index ff668b587..9c3b59636 100755
--- a/t/t4209-log-pickaxe.sh
+++ b/t/t4209-log-pickaxe.sh
@@ -3,6 +3,36 @@
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 $kind in
+ --*)
+ opt=$kind=$needle
+ ;;
+ *)
+ opt=$kind$needle
+ ;;
+ esac
+ case $expect in
+ expect_nomatch)
+ match=nomatch
+ ;;
+ *)
+ match=match
+ ;;
+ esac
+
+ test_expect_success "log $kind${rest:+ $rest} ($match)" "
+ git log $rest $opt --format=%H >actual &&
+ test_cmp $expect actual
+ "
+}
+
test_expect_success setup '
>expect_nomatch &&
@@ -44,35 +74,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 +94,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 &&