@matheusbsbs / matheus-bagliano / commits / 996621eb4d
Fork 0

test_terminal: catch use without TTY prerequisite

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>

Jonathan Nieder committed Oct 17, 2010 at 02:36 UTC 996621eb4d4f7014a6542778420dd23b1d428896
2 files changed +12 -8
t/lib-terminal.sh
+11 -2
@@ -15,14 +15,23 @@ test_expect_success 'set up terminal for tests' '
15
16 if test -e have_tty
17 then
18 - test_terminal() { "$@"; }
18 + test_terminal_() { "$@"; }
19 test_set_prereq TTY
20 elif test -e test_terminal_works
21 then
22 - test_terminal() {
22 + test_terminal_() {
23 "$PERL_PATH" "$TEST_DIRECTORY"/test-terminal.perl "$@"
24 }
25 test_set_prereq TTY
26 else
27 say "# no usable terminal, so skipping some tests"
28 fi
29 +
30 +test_terminal () {
31 + if ! test_declared_prereq TTY
32 + then
33 + echo >&2 'test_terminal: need to declare TTY prerequisite'
34 + return 127
35 + fi
36 + test_terminal_ "$@"
37 +}
t/t7006-pager.sh
+1 -6
@@ -184,11 +184,6 @@ test_expect_success 'color when writing to a file intended for a pager' '
184 colorful colorful.log
185 '
186
187 -if test_have_prereq SIMPLEPAGER && test_have_prereq TTY
188 -then
189 - test_set_prereq SIMPLEPAGERTTY
190 -fi
191 -
187 # Use this helper to make it easy for the caller of your
188 # terminal-using function to specify whether it should fail.
189 # If you write
@@ -224,7 +219,7 @@ parse_args() {
219 test_default_pager() {
220 parse_args "$@"
221
227 - $test_expectation SIMPLEPAGERTTY "$cmd - default pager is used by default" "
222 + $test_expectation SIMPLEPAGER,TTY "$cmd - default pager is used by default" "
223 unset PAGER GIT_PAGER;
224 test_might_fail git config --unset core.pager &&
225 rm -f default_pager_used ||