[PATCH 2/2] test_terminal: catch use without TTY prerequisite

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Jonathan Nieder
Date: Thursday, October 14, 2010 - 1:41 pm

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>
---
Penance for introducing that bug a few times.

 t/t7006-pager.sh |   20 ++++++++++++--------
 1 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/t/t7006-pager.sh b/t/t7006-pager.sh
index fb744e3..53868f6 100755
--- a/t/t7006-pager.sh
+++ b/t/t7006-pager.sh
@@ -28,11 +28,11 @@ test_expect_success 'set up terminal for tests' '
 
 if test -e stdout_is_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"/t7006/test-terminal.perl "$@"
 	}
 	test_set_prereq TTY
@@ -40,6 +40,15 @@ 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_ "$@"
+}
+
 test_expect_success 'setup' '
 	unset GIT_PAGER GIT_PAGER_IN_USE;
 	test_might_fail git config --unset core.pager &&
@@ -213,11 +222,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
@@ -253,7 +257,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 ||
-- 
1.7.2.3

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH 0/3] fix push --progress over file://, git://, etc., Tay Ray Chuan, (Wed Oct 13, 12:31 pm)
[PATCH 2/3] t5523-push-upstream: test progress messages, Tay Ray Chuan, (Wed Oct 13, 12:31 pm)
[PATCH 3/3] push: pass --progress down to git-pack-objects, Tay Ray Chuan, (Wed Oct 13, 12:31 pm)
[PATCH 0/3] more push progress tests, Jeff King, (Wed Oct 13, 8:02 pm)
[PATCH 3/3] t5523: test push progress output to tty, Jeff King, (Wed Oct 13, 8:05 pm)
Re: [PATCH 3/3] t5523: test push progress output to tty, Jonathan Nieder, (Wed Oct 13, 8:16 pm)
[PATCH 2/2] test_terminal: catch use without TTY prerequisite, Jonathan Nieder, (Thu Oct 14, 1:41 pm)
Re: [PATCH 1/2] test-lib: allow test code to check the lis ..., Ævar Arnfjörð Bjarmason, (Thu Oct 14, 10:18 pm)
[PATCH v2 7/8] t5523-push-upstream: test progress messages, Tay Ray Chuan, (Sat Oct 16, 11:37 am)