From: Carl Worth Date: Thu, 28 Oct 2010 19:07:42 +0000 (-0700) Subject: test: Emit a friendly error message if run with bash < 4.0. X-Git-Tag: 0.4~34 X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=commitdiff_plain;h=20018a0c094f576589ea82d5ca5116dfd3c0ea55 test: Emit a friendly error message if run with bash < 4.0. 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). --- diff --git a/test/notmuch-test b/test/notmuch-test index 7feb5bdf..60c3ecbc 100755 --- a/test/notmuch-test +++ b/test/notmuch-test @@ -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" diff --git a/test/test-lib.sh b/test/test-lib.sh index 28d14ef9..8f39aa78 100644 --- a/test/test-lib.sh +++ b/test/test-lib.sh @@ -15,6 +15,14 @@ # 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