Skip to content

Commit

Permalink
tests: factor out terminal handling from t7006
Browse files Browse the repository at this point in the history
Other tests besides the pager ones may want to check how we handle
output to a terminal. This patch makes the code reusable.

Signed-off-by: Jeff King <peff@peff.net>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Jeff King authored and Junio C Hamano committed Oct 18, 2010
1 parent c752e7f commit cc4e48f
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 30 deletions.
28 changes: 28 additions & 0 deletions t/lib-terminal.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#!/bin/sh

test_expect_success 'set up terminal for tests' '
if test -t 1
then
>stdout_is_tty
elif
test_have_prereq PERL &&
"$PERL_PATH" "$TEST_DIRECTORY"/test-terminal.perl \
sh -c "test -t 1"
then
>test_terminal_works
fi
'

if test -e stdout_is_tty
then
test_terminal() { "$@"; }
test_set_prereq TTY
elif test -e test_terminal_works
then
test_terminal() {
"$PERL_PATH" "$TEST_DIRECTORY"/test-terminal.perl "$@"
}
test_set_prereq TTY
else
say "# no usable terminal, so skipping some tests"
fi
31 changes: 1 addition & 30 deletions t/t7006-pager.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,42 +4,13 @@ test_description='Test automatic use of a pager.'

. ./test-lib.sh
. "$TEST_DIRECTORY"/lib-pager.sh
. "$TEST_DIRECTORY"/lib-terminal.sh

cleanup_fail() {
echo >&2 cleanup failed
(exit 1)
}

test_expect_success 'set up terminal for tests' '
rm -f stdout_is_tty ||
cleanup_fail &&
if test -t 1
then
>stdout_is_tty
elif
test_have_prereq PERL &&
"$PERL_PATH" "$TEST_DIRECTORY"/t7006/test-terminal.perl \
sh -c "test -t 1"
then
>test_terminal_works
fi
'

if test -e stdout_is_tty
then
test_terminal() { "$@"; }
test_set_prereq TTY
elif test -e test_terminal_works
then
test_terminal() {
"$PERL_PATH" "$TEST_DIRECTORY"/t7006/test-terminal.perl "$@"
}
test_set_prereq TTY
else
say "# no usable terminal, so skipping some tests"
fi

test_expect_success 'setup' '
unset GIT_PAGER GIT_PAGER_IN_USE;
test_might_fail git config --unset core.pager &&
Expand Down
File renamed without changes.

0 comments on commit cc4e48f

Please sign in to comment.