]> git.notmuchmail.org Git - notmuch/blobdiff - test/test-lib.sh
test-lib.sh: colors to test output when parallel(1) is run on tty
[notmuch] / test / test-lib.sh
index 507886ba83f97eb69ecad6e6d16693ac505d7cab..ff18fae616b2aaf1a27dae10216309ded3006349 100644 (file)
@@ -55,6 +55,9 @@ done,*)
        ;;
 esac
 
+# STDIN from /dev/null. EOF for readers (and ENOTTY for tty related ioctls).
+exec </dev/null
+
 # Save STDOUT to fd 6 and STDERR to fd 7.
 exec 6>&1 7>&2
 # Make xtrace debugging (when used) use redirected STDERR, with verbose lead:
@@ -131,15 +134,7 @@ add_gnupg_home ()
 # '
 # . ./test-lib.sh || exit 1
 
-[ "x$ORIGINAL_TERM" != "xdumb" ] && (
-               TERM=$ORIGINAL_TERM &&
-               export TERM &&
-               [ -t 1 ] &&
-               tput bold >/dev/null 2>&1 &&
-               tput setaf 1 >/dev/null 2>&1 &&
-               tput sgr0 >/dev/null 2>&1
-       ) &&
-       color=t
+color=maybe
 
 while test "$#" -ne 0
 do
@@ -180,6 +175,21 @@ else
     }
 fi
 
+test -n "$COLORS_WITHOUT_TTY" || [ -t 1 ] || color=
+
+if [ -n "$color" ] && [ "$ORIGINAL_TERM" != 'dumb' ] && (
+               TERM=$ORIGINAL_TERM &&
+               export TERM &&
+               tput bold
+               tput setaf
+               tput sgr0
+       ) >/dev/null 2>&1
+then
+       color=t
+else
+       color=
+fi
+
 if test -n "$color"; then
        say_color () {
                (
@@ -317,14 +327,15 @@ emacs_deliver_message ()
     shift 2
     # before we can send a message, we have to prepare the FCC maildir
     mkdir -p "$MAIL_DIR"/sent/{cur,new,tmp}
-    # eval'ing smtp-dummy --background will set smtp_dummy_pid
-    smtp_dummy_pid=
+    # eval'ing smtp-dummy --background will set smtp_dummy_pid and -_port
+    local smtp_dummy_pid= smtp_dummy_port=
     eval `$TEST_DIRECTORY/smtp-dummy --background sent_message`
     test -n "$smtp_dummy_pid" || return 1
+    test -n "$smtp_dummy_port" || return 1
 
     test_emacs \
        "(let ((message-send-mail-function 'message-smtpmail-send-it)
-               (mail-host-address \"example.com\")
+              (mail-host-address \"example.com\")
               (smtpmail-smtp-server \"localhost\")
               (smtpmail-smtp-service \"${smtp_dummy_port}\"))
           (notmuch-mua-mail)
@@ -334,7 +345,7 @@ emacs_deliver_message ()
           (insert \"${subject}\")
           (message-goto-body)
           (insert \"${body}\")
-          $@
+          $*
           (notmuch-mua-send-and-exit))"
 
     # In case message was sent properly, client waits for confirmation
@@ -378,7 +389,7 @@ emacs_fcc_message ()
           (insert \"${subject}\")
           (message-goto-body)
           (insert \"${body}\")
-          $@
+          $*
           (notmuch-mua-send-and-exit))" || return 1
     notmuch new $nmn_args >/dev/null
 }
@@ -996,7 +1007,7 @@ test_emacs () {
        rm -f OUTPUT
        touch OUTPUT
 
-       ${TEST_EMACSCLIENT} --socket-name="$EMACS_SERVER" --eval "(notmuch-test-progn $@)"
+       ${TEST_EMACSCLIENT} --socket-name="$EMACS_SERVER" --eval "(notmuch-test-progn $*)"
 }
 
 test_python() {