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>
This commit is contained in:
parent
492b10766f
commit
3c7406d4b5
@ -172,58 +172,94 @@ then
|
|||||||
test_set_prereq SIMPLEPAGER
|
test_set_prereq SIMPLEPAGER
|
||||||
fi
|
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;
|
unset PAGER GIT_PAGER;
|
||||||
test_might_fail git config --unset core.pager &&
|
test_might_fail git config --unset core.pager &&
|
||||||
rm -f default_pager_used ||
|
rm -f default_pager_used ||
|
||||||
cleanup_fail &&
|
cleanup_fail &&
|
||||||
|
|
||||||
cat >$less <<-\EOF &&
|
cat >\$less <<-\EOF &&
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
wc >default_pager_used
|
wc >default_pager_used
|
||||||
EOF
|
EOF
|
||||||
chmod +x $less &&
|
chmod +x \$less &&
|
||||||
(
|
(
|
||||||
PATH=.:$PATH &&
|
PATH=.:\$PATH &&
|
||||||
export PATH &&
|
export PATH &&
|
||||||
test_terminal git log
|
$full_command
|
||||||
) &&
|
) &&
|
||||||
test -e default_pager_used
|
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;
|
unset GIT_PAGER;
|
||||||
test_might_fail git config --unset core.pager &&
|
test_might_fail git config --unset core.pager &&
|
||||||
rm -f PAGER_used ||
|
rm -f PAGER_used ||
|
||||||
cleanup_fail &&
|
cleanup_fail &&
|
||||||
|
|
||||||
PAGER="wc >PAGER_used" &&
|
PAGER='wc >PAGER_used' &&
|
||||||
export PAGER &&
|
export PAGER &&
|
||||||
test_terminal git log &&
|
$full_command &&
|
||||||
test -e PAGER_used
|
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;
|
unset GIT_PAGER;
|
||||||
rm -f core.pager_used ||
|
rm -f core.pager_used ||
|
||||||
cleanup_fail &&
|
cleanup_fail &&
|
||||||
|
|
||||||
PAGER=wc &&
|
PAGER=wc &&
|
||||||
export PAGER &&
|
export PAGER &&
|
||||||
git config core.pager "wc >core.pager_used" &&
|
git config core.pager 'wc >core.pager_used' &&
|
||||||
test_terminal git log &&
|
$full_command &&
|
||||||
test -e core.pager_used
|
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 ||
|
rm -f GIT_PAGER_used ||
|
||||||
cleanup_fail &&
|
cleanup_fail &&
|
||||||
|
|
||||||
git config core.pager wc &&
|
git config core.pager wc &&
|
||||||
GIT_PAGER="wc >GIT_PAGER_used" &&
|
GIT_PAGER='wc >GIT_PAGER_used' &&
|
||||||
export GIT_PAGER &&
|
export GIT_PAGER &&
|
||||||
test_terminal git log &&
|
$full_command &&
|
||||||
test -e GIT_PAGER_used
|
test -e GIT_PAGER_used
|
||||||
'
|
"
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
Loading…
Reference in New Issue
Block a user