Browse Source

tests: factor out terminal handling from t7006

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>
maint
Jeff King 14 years ago committed by Junio C Hamano
parent
commit
cc4e48fc1e
  1. 28
      t/lib-terminal.sh
  2. 31
      t/t7006-pager.sh
  3. 0
      t/test-terminal.perl

28
t/lib-terminal.sh

@ -0,0 +1,28 @@ @@ -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
t/t7006-pager.sh

@ -4,42 +4,13 @@ test_description='Test automatic use of a pager.' @@ -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 &&

0
t/t7006/test-terminal.perl → t/test-terminal.perl

Loading…
Cancel
Save