summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Nieder <jrnieder@gmail.com>2010-06-26 14:23:02 -0500
committerJunio C Hamano <gitster@pobox.com>2010-06-28 10:31:17 -0700
commit3c7406d4b595c9e8c8dfcff2739bab9412add5a3 (patch)
treec3e9f1ab3fc963ae0f33a37e9adf1b07a3c6725e
parent492b10766f499b60bdc867c253f36d274ac51538 (diff)
downloadgit-3c7406d4b595c9e8c8dfcff2739bab9412add5a3.tar.gz
t7006 (pager): introduce helper for parameterized tests
The current tests test pager configuration for ‘git log’, but other commands use a different setup procedure and should therefore be tested separately. Add a helper to make this easier. This patch introduces the helper and changes some existing tests to use it. The only functional change should be the introduction of ‘git log - ’ to a few test descriptions. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Acked-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-xt/t7006-pager.sh72
1 files changed, 54 insertions, 18 deletions
diff --git a/t/t7006-pager.sh b/t/t7006-pager.sh
index 9a83241c94..b117ebb5a7 100755
--- a/t/t7006-pager.sh
+++ b/t/t7006-pager.sh
@@ -172,58 +172,94 @@ then
test_set_prereq SIMPLEPAGER
fi
-test_expect_success SIMPLEPAGER 'default pager is used by default' '
+# Use this helper to make it easy for the caller of your
+# terminal-using function to specify whether it should fail.
+# If you write
+#
+# your_test() {
+# parse_args "$@"
+#
+# $test_expectation "$cmd - behaves well" "
+# ...
+# $full_command &&
+# ...
+# "
+# }
+#
+# then your test can be used like this:
+#
+# your_test expect_(success|failure) [test_must_fail] 'git foo'
+#
+parse_args() {
+ test_expectation="test_$1"
+ shift
+ if test "$1" = test_must_fail
+ then
+ full_command="test_must_fail test_terminal "
+ shift
+ else
+ full_command="test_terminal "
+ fi
+ cmd=$1
+ full_command="$full_command $1"
+}
+
+parse_args expect_success 'git log'
+$test_expectation SIMPLEPAGER "$cmd - default pager is used by default" "
unset PAGER GIT_PAGER;
test_might_fail git config --unset core.pager &&
rm -f default_pager_used ||
cleanup_fail &&
- cat >$less <<-\EOF &&
+ cat >\$less <<-\EOF &&
#!/bin/sh
wc >default_pager_used
EOF
- chmod +x $less &&
+ chmod +x \$less &&
(
- PATH=.:$PATH &&
+ PATH=.:\$PATH &&
export PATH &&
- test_terminal git log
+ $full_command
) &&
test -e default_pager_used
-'
+"
-test_expect_success TTY 'PAGER overrides default pager' '
+parse_args expect_success 'git log'
+$test_expectation TTY "$cmd - PAGER overrides default pager" "
unset GIT_PAGER;
test_might_fail git config --unset core.pager &&
rm -f PAGER_used ||
cleanup_fail &&
- PAGER="wc >PAGER_used" &&
+ PAGER='wc >PAGER_used' &&
export PAGER &&
- test_terminal git log &&
+ $full_command &&
test -e PAGER_used
-'
+"
-test_expect_success TTY 'core.pager overrides PAGER' '
+parse_args expect_success 'git log'
+$test_expectation TTY "$cmd - core.pager overrides PAGER" "
unset GIT_PAGER;
rm -f core.pager_used ||
cleanup_fail &&
PAGER=wc &&
export PAGER &&
- git config core.pager "wc >core.pager_used" &&
- test_terminal git log &&
+ git config core.pager 'wc >core.pager_used' &&
+ $full_command &&
test -e core.pager_used
-'
+"
-test_expect_success TTY 'GIT_PAGER overrides core.pager' '
+parse_args expect_success 'git log'
+$test_expectation TTY "$cmd - GIT_PAGER overrides core.pager" "
rm -f GIT_PAGER_used ||
cleanup_fail &&
git config core.pager wc &&
- GIT_PAGER="wc >GIT_PAGER_used" &&
+ GIT_PAGER='wc >GIT_PAGER_used' &&
export GIT_PAGER &&
- test_terminal git log &&
+ $full_command &&
test -e GIT_PAGER_used
-'
+"
test_done