Skip to content

Commit

Permalink
test_terminal: catch use without TTY prerequisite
Browse files Browse the repository at this point in the history
It is easy to forget to declare the TTY prerequisite when
writing tests on a system where it would always be satisfied
(because IO::Pty is installed; see v1.7.3-rc0~33^2, 2010-08-16
for example).  Automatically detect this problem so there is
no need to remember.

	test_terminal: need to declare TTY prerequisite
	test_must_fail: command not found: test_terminal echo hi

test_terminal returns status 127 in this case to simulate
not being available.

Also replace the SIMPLEPAGERTTY prerequisite on one test with
"SIMPLEPAGER,TTY", since (1) the latter is supported now and
(2) the prerequisite detection relies on the TTY prereq being
explicitly declared.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Jonathan Nieder authored and Junio C Hamano committed Oct 18, 2010
1 parent 05236a5 commit 996621e
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 8 deletions.
13 changes: 11 additions & 2 deletions t/lib-terminal.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,23 @@ test_expect_success 'set up terminal for tests' '

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

test_terminal () {
if ! test_declared_prereq TTY
then
echo >&2 'test_terminal: need to declare TTY prerequisite'
return 127
fi
test_terminal_ "$@"
}
7 changes: 1 addition & 6 deletions t/t7006-pager.sh
Original file line number Diff line number Diff line change
Expand Up @@ -184,11 +184,6 @@ test_expect_success 'color when writing to a file intended for a pager' '
colorful colorful.log
'

if test_have_prereq SIMPLEPAGER && test_have_prereq TTY
then
test_set_prereq SIMPLEPAGERTTY
fi

# Use this helper to make it easy for the caller of your
# terminal-using function to specify whether it should fail.
# If you write
Expand Down Expand Up @@ -224,7 +219,7 @@ parse_args() {
test_default_pager() {
parse_args "$@"

$test_expectation SIMPLEPAGERTTY "$cmd - default pager is used by default" "
$test_expectation SIMPLEPAGER,TTY "$cmd - default pager is used by default" "
unset PAGER GIT_PAGER;
test_might_fail git config --unset core.pager &&
rm -f default_pager_used ||
Expand Down

0 comments on commit 996621e

Please sign in to comment.