notmuch/test/notmuch-test
Austin Clements 9ade8160a6 test: Test atomicity of notmuch new.
This tests notmuch new's ability to recover from arbitrary stopping
failures.  It interrupts notmuch new after every database commit and,
on every resulting database snapshot, re-runs notmuch new to
completion and checks that the final database state is invariant.
2011-09-12 23:36:00 -03:00

69 lines
1.3 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
new
search
search-output
search-by-folder
search-position-overlap-bug
search-insufficient-from-quoting
json
multipart
thread-naming
raw
reply
dump-restore
uuencode
thread-order
author-order
from-guessing
long-id
encoding
emacs
emacs-large-search-buffer
maildir-sync
crypto
symbol-hiding
search-folder-coherence
atomicity
"
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
# Run the tests
for test in $TESTS; do
$TEST_TIMEOUT_CMD ./$test "$@"
done
# Report results
./aggregate-results.sh test-results/*
# Clean up
rm -rf test-results corpus.mail