notmuch/test/notmuch-test
Mark Walters 6478e1bc92 test: add some exclude tests
Systematically test the exclude options for search. Also move the
search existing exclude tests into the new test. There is some overlap
between the two sets of tests but many of the existing ones are there
because they triggered bugs in the past so I have kept them to ensure
coverage.
2012-04-07 23:06:21 -03:00

86 lines
1.6 KiB
Bash
Executable file

#!/usr/bin/env bash
# Run tests
#
# Copyright (c) 2005 Junio C Hamano
#
# 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
help-test
new
count
search
search-output
search-by-folder
search-position-overlap-bug
search-insufficient-from-quoting
search-limiting
excludes
tagging
json
multipart
thread-naming
raw
reply
reply-to-sender
dump-restore
uuencode
thread-order
author-order
from-guessing
long-id
encoding
emacs
emacs-large-search-buffer
emacs-subject-to-filename
maildir-sync
crypto
symbol-hiding
search-folder-coherence
atomicity
python
hooks
argument-parsing
emacs-test-functions
emacs-address-cleaning
emacs-hello
emacs-show
"
TESTS=${NOTMUCH_TESTS:=$TESTS}
# Clean up any results from a previous run
rm -r test-results >/dev/null 2>/dev/null
# test for timeout utility
if command -v timeout >/dev/null; then
TEST_TIMEOUT_CMD="timeout 2m "
echo "INFO: using 2 minute timeout for tests"
else
TEST_TIMEOUT_CMD=""
fi
trap 'e=$?; kill $!; exit $e' HUP INT TERM
# Run the tests
for test in $TESTS; do
$TEST_TIMEOUT_CMD ./$test "$@" &
wait $!
done
trap - HUP INT TERM
# Report results
./aggregate-results.sh test-results/*
# Clean up
rm -rf test-results corpus.mail