diff options
author | Jonathan Nieder <jrnieder@gmail.com> | 2010-06-26 14:23:02 -0500 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-06-28 10:31:17 -0700 |
commit | 3c7406d4b595c9e8c8dfcff2739bab9412add5a3 (patch) | |
tree | c3e9f1ab3fc963ae0f33a37e9adf1b07a3c6725e | |
parent | 492b10766f499b60bdc867c253f36d274ac51538 (diff) | |
download | git-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-x | t/t7006-pager.sh | 72 |
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 |