]> git.notmuchmail.org Git - notmuch/blobdiff - test/test-lib.sh
test: Remove #! line from test-lib.sh
[notmuch] / test / test-lib.sh
index a48faf5cf5298dc724cffa510bcc3eb3dec26c4e..82767c07ccf41ac3eb6cd964ce6bb783ba39dea9 100644 (file)
@@ -1,4 +1,3 @@
-#!/usr/bin/env bash
 #
 # Copyright (c) 2005 Junio C Hamano
 #
@@ -50,6 +49,7 @@ TZ=UTC
 TERM=dumb
 export LANG LC_ALL PAGER TERM TZ
 GIT_TEST_CMP=${GIT_TEST_CMP:-diff -u}
+TEST_EMACS=${TEST_EMACS:-${EMACS:-emacs}}
 
 # Protect ourselves from common misconfiguration to export
 # CDPATH into the environment
@@ -116,6 +116,16 @@ do
        esac
 done
 
+if test -n "$debug"; then
+    print_subtest () {
+       printf " %-4s" "[$((test_count - 1))]"
+    }
+else
+    print_subtest () {
+       true
+    }
+fi
+
 if test -n "$color"; then
        say_color () {
                (
@@ -132,6 +142,7 @@ if test -n "$color"; then
                printf " "
                 printf "$@"
                tput sgr0
+               print_subtest
                )
        }
 else
@@ -140,6 +151,7 @@ else
                shift
                printf " "
                 printf "$@"
+               print_subtest
        }
 fi
 
@@ -310,7 +322,7 @@ generate_message ()
     fi
 
     if [ -z "${template[date]}" ]; then
-       template[date]="Tue, 05 Jan 2001 15:43:57 -0000"
+       template[date]="Fri, 05 Jan 2001 15:43:57 +0000"
     fi
 
     additional_headers=""
@@ -885,7 +897,7 @@ export NOTMUCH_CONFIG=$NOTMUCH_CONFIG
 #
 # --load               Force loading of notmuch.el and test-lib.el
 
-exec emacs --no-init-file --no-site-file \
+exec ${TEST_EMACS} --no-init-file --no-site-file \
        --directory "$TEST_DIRECTORY/../emacs" --load notmuch.el \
        --directory "$TEST_DIRECTORY" --load test-lib.el \
        "\$@"
@@ -919,6 +931,20 @@ test_emacs () {
        emacsclient --socket-name="$EMACS_SERVER" --eval "(progn $@)"
 }
 
+test_python() {
+       export LD_LIBRARY_PATH=$TEST_DIRECTORY/../lib
+       export PYTHONPATH=$TEST_DIRECTORY/../bindings/python
+
+       # Some distros (e.g. Arch Linux) ship Python 2.* as /usr/bin/python2,
+       # most others as /usr/bin/python. So first try python2, and fallback to
+       # python if python2 doesn't exist.
+       cmd=python2
+       [[ "$test_missing_external_prereq_python2_" = t ]] && cmd=python
+
+       (echo "import sys; _orig_stdout=sys.stdout; sys.stdout=open('OUTPUT', 'w')"; cat) \
+               | $cmd -
+}
+
 # Creates a script that counts how much time it is executed and calls
 # notmuch.  $notmuch_counter_command is set to the path to the
 # generated script.  Use notmuch_counter_value() function to get the
@@ -1180,3 +1206,5 @@ test_declare_external_prereq emacs
 test_declare_external_prereq emacsclient
 test_declare_external_prereq gdb
 test_declare_external_prereq gpg
+test_declare_external_prereq python
+test_declare_external_prereq python2