Skip to content

Commit

Permalink
t7006: test pager configuration for several git commands
Browse files Browse the repository at this point in the history
Test choice of pager at several stages of repository setup.  This
provides some (admittedly uninteresting) examples to keep in mind when
considering changes to the setup procedure.

Improved-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Jonathan Nieder authored and Junio C Hamano committed Jun 28, 2010
1 parent 3c7406d commit 8f81449
Showing 1 changed file with 84 additions and 52 deletions.
136 changes: 84 additions & 52 deletions t/t7006-pager.sh
Original file line number Diff line number Diff line change
@@ -204,62 +204,94 @@ parse_args() {
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 &&
test_default_pager() {
parse_args "$@"

$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 &&
#!/bin/sh
wc >default_pager_used
EOF
chmod +x \$less &&
(
PATH=.:\$PATH &&
export PATH &&
$full_command
) &&
test -e default_pager_used
"
}

cat >\$less <<-\EOF &&
#!/bin/sh
wc >default_pager_used
EOF
chmod +x \$less &&
(
PATH=.:\$PATH &&
export PATH &&
$full_command
) &&
test -e default_pager_used
"
test_PAGER_overrides() {
parse_args "$@"

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 &&
$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' &&
export PAGER &&
$full_command &&
test -e PAGER_used
"

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 >PAGER_used' &&
export PAGER &&
$full_command &&
test -e PAGER_used
"
}

PAGER=wc &&
export PAGER &&
git config core.pager 'wc >core.pager_used' &&
$full_command &&
test -e core.pager_used
"

parse_args expect_success 'git log'
$test_expectation TTY "$cmd - GIT_PAGER overrides core.pager" "
rm -f GIT_PAGER_used ||
cleanup_fail &&
test_core_pager_overrides() {
parse_args "$@"

$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' &&
$full_command &&
test -e core.pager_used
"
}

test_GIT_PAGER_overrides() {
parse_args "$@"

$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' &&
export GIT_PAGER &&
$full_command &&
test -e GIT_PAGER_used
"
}

git config core.pager wc &&
GIT_PAGER='wc >GIT_PAGER_used' &&
export GIT_PAGER &&
$full_command &&
test -e GIT_PAGER_used
"
test_default_pager expect_success 'git log'
test_PAGER_overrides expect_success 'git log'
test_core_pager_overrides expect_success 'git log'
test_GIT_PAGER_overrides expect_success 'git log'

test_default_pager expect_success 'git -p log'
test_PAGER_overrides expect_success 'git -p log'
test_core_pager_overrides expect_success 'git -p log'
test_GIT_PAGER_overrides expect_success 'git -p log'

test_default_pager expect_success test_must_fail 'git -p'
test_PAGER_overrides expect_success test_must_fail 'git -p'
test_core_pager_overrides expect_success test_must_fail 'git -p'
test_GIT_PAGER_overrides expect_success test_must_fail 'git -p'

test_default_pager expect_success test_must_fail 'git -p nonsense'
test_PAGER_overrides expect_success test_must_fail 'git -p nonsense'
test_core_pager_overrides expect_success test_must_fail 'git -p nonsense'
test_GIT_PAGER_overrides expect_success test_must_fail 'git -p nonsense'

test_done

0 comments on commit 8f81449

Please sign in to comment.