aboutsummaryrefslogtreecommitdiff
path: root/test/test-lib.sh
diff options
context:
space:
mode:
authorCarl Worth <cworth@cworth.org>2010-10-28 12:07:42 -0700
committerCarl Worth <cworth@cworth.org>2010-10-28 12:07:42 -0700
commit20018a0c094f576589ea82d5ca5116dfd3c0ea55 (patch)
treec3fbadba2f961d2448c3019520936e2c945c7454 /test/test-lib.sh
parent4884f5496caa2cdc8749c5eefbdc264373403f22 (diff)
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).
Diffstat (limited to 'test/test-lib.sh')
-rw-r--r--test/test-lib.sh8
1 files changed, 8 insertions, 0 deletions
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