summaryrefslogtreecommitdiff
path: root/t/lib-terminal.sh
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2010-10-17 02:36:56 +0800
committerJunio C Hamano <gitster@pobox.com>2010-10-18 16:20:19 -0700
commitcc4e48fc1eafdb9bec037f10c22708a26fd25ef6 (patch)
tree436387a4e210abb6f414b3b86a49da44451c50bf /t/lib-terminal.sh
parentc752e7f3e8d96a9673ad248addc9418164bd3ce6 (diff)
downloadgit-cc4e48fc1eafdb9bec037f10c22708a26fd25ef6.tar.gz
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>
Diffstat (limited to 't/lib-terminal.sh')
-rw-r--r--t/lib-terminal.sh28
1 files changed, 28 insertions, 0 deletions
diff --git a/t/lib-terminal.sh b/t/lib-terminal.sh
new file mode 100644
index 0000000000..6fc33db6c1
--- /dev/null
+++ b/t/lib-terminal.sh
@@ -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