X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=test%2Ftest-lib.sh;h=8f39aa78f3a7ce7a290f71287e434f5ce79481b8;hb=c6b59ea3c656e31e4ed6942b5d7660895fca543a;hp=5f7fa14172efc7a01d5c337540f9e771f84811f9;hpb=5497b01c27ed217bc351d9995e0f46c3d6ff2442;p=notmuch diff --git a/test/test-lib.sh b/test/test-lib.sh index 5f7fa141..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 @@ -377,7 +385,7 @@ add_email_corpus () cp -a ../corpus.mail ${MAIL_DIR} else cp -a ../corpus ${MAIL_DIR} - notmuch new + notmuch new >/dev/null cp -a ${MAIL_DIR} ../corpus.mail fi } @@ -414,6 +422,24 @@ test_expect_equal () fi } +test_expect_equal_failure () +{ + test "$#" = 3 && { prereq=$1; shift; } || prereq= + test "$#" = 2 || + error "bug in the test script: not 2 or 3 parameters to test_expect_equal" + + output="$1" + expected="$2" + if ! test_skip "$@" + then + if [ "$output" = "$expected" ]; then + test_known_broken_ok_ "$test_subtest_name" + else + test_known_broken_failure_ "$test_subtest_name" + fi + fi +} + NOTMUCH_NEW () { notmuch new | grep -v -E -e '^Processed [0-9]*( total)? file|Found [0-9]* total file' @@ -715,6 +741,16 @@ test_done () { fi } +test_emacs () { + emacs_code="$1" + emacs --batch --no-site-file --directory ../../emacs --load notmuch.el \ + --eval "(defun notmuch-test-wait () + (while (get-buffer-process (current-buffer)) + (sleep-for 0.1)))" \ + --eval "(progn (set-frame-width (window-frame (get-buffer-window)) 80) ${emacs_code})" +} + + find_notmuch_path () { dir="$1" @@ -816,7 +852,8 @@ rm -fr "$test" || { } MAIL_DIR="${TMP_DIRECTORY}/mail" -export NOTMUCH_CONFIG="${TMP_DIRECTORY}/notmuch-config" +export HOME="${TMP_DIRECTORY}" +export NOTMUCH_CONFIG="${HOME}/notmuch-config" mkdir -p "${test}" mkdir -p "${MAIL_DIR}"