#
# Copyright (c) 2005 Junio C Hamano
+# Copyright (c) 2010 Notmuch Developers
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see http://www.gnu.org/licenses/ .
+# along with this program. If not, see https://www.gnu.org/licenses/ .
# This file contains common code to be used by both the regular
# (correctness) tests and the performance tests.
+# test-lib.sh defines die() which echoes to nonstandard fd where
+# output was redirected earlier in that file. If test-lib.sh is not
+# loaded, neither this redirection nor die() function were defined.
+#
+type die >/dev/null 2>&1 || die () { echo "$@" >&2; exit 1; }
+
find_notmuch_path ()
{
dir="$1"
done
}
+backup_database () {
+ test_name=$(basename $0 .sh)
+ rm -rf notmuch-dir-backup."$test_name"
+ cp -pR ${MAIL_DIR}/.notmuch notmuch-dir-backup."${test_name}"
+}
+
+restore_database () {
+ test_name=$(basename $0 .sh)
+ rm -rf ${MAIL_DIR}/.notmuch
+ cp -pR notmuch-dir-backup."${test_name}" ${MAIL_DIR}/.notmuch
+}
+
# Test the binaries we have just built. The tests are kept in
# test/ subdirectory and are run in 'trash directory' subdirectory.
-TEST_DIRECTORY=$(pwd)
+TEST_DIRECTORY=$(pwd -P)
notmuch_path=`find_notmuch_path "$TEST_DIRECTORY"`
+
+# Prepend $TEST_DIRECTORY/../lib to LD_LIBRARY_PATH, to make tests work
+# on systems where ../notmuch depends on LD_LIBRARY_PATH.
+LD_LIBRARY_PATH=${TEST_DIRECTORY%/*}/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
+export LD_LIBRARY_PATH
+
+# configure output
+. $notmuch_path/sh.config || exit 1
+
+# load OS specifics
+if [ -e ./test-lib-$PLATFORM.sh ]; then
+ . ./test-lib-$PLATFORM.sh || exit 1
+fi
+
if test -n "$valgrind"
then
make_symlink () {
PATH=$GIT_VALGRIND/bin:$PATH
GIT_EXEC_PATH=$GIT_VALGRIND/bin
export GIT_VALGRIND
- test -n "$notmuch_path" && MANPATH="$notmuch_path/man:$MANPATH"
+ test -n "$notmuch_path" && MANPATH="$notmuch_path/doc/_build/man"
else # normal case
if test -n "$notmuch_path"
then
PATH="$notmuch_path:$PATH"
- MANPATH="$notmuch_path/man:$MANPATH"
+ MANPATH="$notmuch_path/doc/_build/man"
fi
fi
export PATH MANPATH
test ! -z "$debug" || remove_tmp=$TMP_DIRECTORY
rm -fr "$test" || {
GIT_EXIT_OK=t
- echo >&5 "FATAL: Cannot prepare test area"
+ echo >&6 "FATAL: Cannot prepare test area"
exit 1
}
mkdir -p "${HOME}"
MAIL_DIR="${TMP_DIRECTORY}/mail"
-export GNUPGHOME="${TMP_DIRECTORY}/gnupg"
export NOTMUCH_CONFIG="${TMP_DIRECTORY}/notmuch-config"
mkdir -p "${test}"