test: Emit a friendly error message if run with bash < 4.0.
authorCarl Worth <cworth@cworth.org>
Thu, 28 Oct 2010 19:07:42 +0000 (12:07 -0700)
committerCarl Worth <cworth@cworth.org>
Thu, 28 Oct 2010 19:07:42 +0000 (12:07 -0700)
The bash code in the test suite is using associative arrays which were
only added to bash as of release 4.0.

If the test suite is run with an older bash, we now immediately error
out and explain the situation, (instead of emitting confusing error
messages and failing dozens of tests, which is what happened before
this change).

test/notmuch-test
test/test-lib.sh

index 7feb5bdf5fd14d1ef26ec10a912ee1add51760d7..60c3ecbcbe9968ac0dcd5fe2798a32ff6ec5cbf0 100755 (executable)
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 
 # Run tests
 #
@@ -6,6 +6,14 @@
 #
 # Adapted from a Makefile to a shell script by Carl Worth (2010)
 
+if [ ${BASH_VERSINFO[0]} -lt 4 ]; then
+    echo "Error: The notmuch test suite requires a bash version >= 4.0"
+    echo "due to use of associative arrays within the test suite."
+    echo "Please try again with a newer bash (or help us fix the"
+    echo "test suite to be more portable). Thanks."
+    exit 1
+fi
+
 cd $(dirname "$0")
 
 TESTS="basic new search json thread-naming reply dump-restore uuencode thread-order author-order from-guessing long-id encoding emacs"
index 28d14ef96aaa6965c5bbc8eedd963ad2928d5401..8f39aa78f3a7ce7a290f71287e434f5ce79481b8 100644 (file)
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see http://www.gnu.org/licenses/ .
 
+if [ ${BASH_VERSINFO[0]} -lt 4 ]; then
+    echo "Error: The notmuch test suite requires a bash version >= 4.0"
+    echo "due to use of associative arrays within the test suite."
+    echo "Please try again with a newer bash (or help us fix the"
+    echo "test suite to be more portable). Thanks."
+    exit 1
+fi
+
 # if --tee was passed, write the output not only to the terminal, but
 # additionally to the file test-results/$BASENAME.out, too.
 case "$GIT_TEST_TEE_STARTED, $* " in