git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Jonathan Nieder <jrnieder@gmail.com>
To: Jeff King <jrk@wrek.org>
Cc: Tay Ray Chuan <rctay89@gmail.com>,
	Git Mailing List <git@vger.kernel.org>,
	Chase Brammer <cbrammer@gmail.com>,
	Junio C Hamano <gitster@pobox.com>
Subject: [PATCH 2/2] test_terminal: catch use without TTY prerequisite
Date: Thu, 14 Oct 2010 15:41:41 -0500	[thread overview]
Message-ID: <20101014204141.GC28958@burratino> (raw)
In-Reply-To: <20101014203721.GA28958@burratino>

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

  parent reply	other threads:[~2010-10-14 20:45 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-12 19:04 Push not writing to standard error Chase Brammer
2010-10-12 19:21 ` Jonathan Nieder
2010-10-12 19:32   ` Jeff King
2010-10-12 19:38     ` Jeff King
2010-10-12 20:37       ` Chase Brammer
2010-10-12 20:48         ` Jeff King
2010-10-12 22:18           ` Chase Brammer
2010-10-13 17:33       ` Junio C Hamano
2010-10-13 17:45         ` Jeff King
2010-10-12 22:21           ` [PATCH] Fix to push --progress. The --progress flag was not being passed into tranport.c from send-pack.h, making the --progress flag unusable Chase Brammer
2010-10-12 22:44             ` Jonathan Nieder
2010-10-13 17:49             ` Junio C Hamano
2010-10-13 17:55               ` Jeff King
2010-10-13 18:40             ` Tay Ray Chuan
2010-10-13 19:31             ` [PATCH 0/3] fix push --progress over file://, git://, etc Tay Ray Chuan
2010-10-13 19:31               ` [PATCH 1/3] t5523-push-upstream: add function to ensure fresh upstream repo Tay Ray Chuan
2010-10-13 19:30                 ` Jonathan Nieder
2010-10-13 19:31                 ` [PATCH 2/3] t5523-push-upstream: test progress messages Tay Ray Chuan
2010-10-13 19:31                   ` [PATCH 3/3] push: pass --progress down to git-pack-objects Tay Ray Chuan
2010-10-14  0:59                     ` Tay Ray Chuan
2010-10-14  1:24                       ` Jeff King
2010-10-13 19:35               ` [PATCH 0/3] fix push --progress over file://, git://, etc Tay Ray Chuan
2010-10-16 18:36                 ` [PATCH v2 0/8] " Tay Ray Chuan
2010-10-16 18:36                   ` [PATCH v2 1/8] tests: factor out terminal handling from t7006 Tay Ray Chuan
2010-10-16 18:36                     ` [PATCH v2 2/8] tests: test terminal output to both stdout and stderr Tay Ray Chuan
2010-10-16 18:36                       ` [PATCH v2 3/8] test-lib: allow test code to check the list of declared prerequisites Tay Ray Chuan
2010-10-16 18:36                         ` [PATCH v2 4/8] test_terminal: catch use without TTY prerequisite Tay Ray Chuan
2010-10-16 18:37                           ` [PATCH v2 5/8] test_terminal: give priority to test-terminal.perl usage Tay Ray Chuan
2010-10-16 18:37                             ` [PATCH v2 6/8] t5523-push-upstream: add function to ensure fresh upstream repo Tay Ray Chuan
2010-10-16 18:37                               ` [PATCH v2 7/8] t5523-push-upstream: test progress messages Tay Ray Chuan
2010-10-16 18:37                                 ` [PATCH v2 8/8] push: pass --progress down to git-pack-objects Tay Ray Chuan
2010-10-17  0:46                                 ` [PATCH v2 7/8] t5523-push-upstream: test progress messages Jonathan Nieder
2010-10-17  0:38                             ` [PATCH v2 5/8] test_terminal: give priority to test-terminal.perl usage Jonathan Nieder
2010-10-22 19:42                             ` Jeff King
2010-10-17  0:51                   ` [PATCH v2 0/8] fix push --progress over file://, git://, etc Jonathan Nieder
2010-10-14  3:02               ` [PATCH 0/3] more push progress tests Jeff King
2010-10-14  3:04                 ` [PATCH 1/3] tests: factor out terminal handling from t7006 Jeff King
2010-10-14  3:10                   ` Jonathan Nieder
2010-10-14  3:04                 ` [PATCH 2/3] tests: test terminal output to both stdout and stderr Jeff King
2010-10-14  3:27                   ` Jonathan Nieder
2010-10-14  3:05                 ` [PATCH 3/3] t5523: test push progress output to tty Jeff King
2010-10-14  3:16                   ` Jonathan Nieder
2010-10-14  3:34                     ` Jeff King
2010-10-14 20:37                       ` [PATCH/RFC 0/2] test_terminal: check that TTY prerequisite is declared Jonathan Nieder
2010-10-14 20:40                         ` [PATCH 1/2] test-lib: allow test code to check the list of declared prerequisites Jonathan Nieder
2010-10-15  5:18                           ` Ævar Arnfjörð Bjarmason
2010-10-15  5:34                             ` Jonathan Nieder
2010-10-14 20:41                         ` Jonathan Nieder [this message]
2010-10-15  4:42                         ` [PATCH/RFC 0/2] test_terminal: check that TTY prerequisite is declared Jeff King
2010-10-15 11:27                           ` Tay Ray Chuan
2010-10-18 16:39 ` Push not writing to standard error Scott R. Godin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20101014204141.GC28958@burratino \
    --to=jrnieder@gmail.com \
    --cc=cbrammer@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jrk@wrek.org \
    --cc=rctay89@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).