X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=test%2Ftest-lib.sh;h=d9bb2541bdc907c877162628befc51de1ccc091b;hb=a9849caadf862545aa5563a782dc84d67bc7e1b0;hp=559a5435985f60dfb3b86257a5a8c622b74603e6;hpb=ba9f9efc9a8ba9d6e509d4041a66e9a2d31171b1;p=notmuch diff --git a/test/test-lib.sh b/test/test-lib.sh index 559a5435..d9bb2541 100644 --- a/test/test-lib.sh +++ b/test/test-lib.sh @@ -354,7 +354,7 @@ EOF increment_mtime "$(dirname "${gen_msg_filename}")" } -# Generate a new message and add it to the index. +# Generate a new message and add it to the database. # # All of the arguments and return values supported by generate_message # are also supported here, so see that function for details. @@ -364,6 +364,24 @@ add_message () notmuch new > /dev/null } +# Generate a corpus of email and add it to the database. +# +# This corpus is fixed, (it happens to be 50 messages from early in +# the history of the notmuch mailing list), which allows for reliably +# testing commands that need to operate on a not-totally-trivial +# number of messages. +add_email_corpus () +{ + rm -rf ${MAIL_DIR} + if [ -d ../corpus.mail ]; then + cp -a ../corpus.mail ${MAIL_DIR} + else + cp -a ../corpus ${MAIL_DIR} + notmuch new >/dev/null + cp -a ${MAIL_DIR} ../corpus.mail + fi +} + test_begin_subtest () { test_subtest_name="$1" @@ -396,6 +414,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' @@ -697,6 +733,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" @@ -801,7 +847,7 @@ MAIL_DIR="${TMP_DIRECTORY}/mail" export NOTMUCH_CONFIG="${TMP_DIRECTORY}/notmuch-config" mkdir -p "${test}" -mkdir "$MAIL_DIR" +mkdir -p "${MAIL_DIR}" cat <"${NOTMUCH_CONFIG}" [database]