]> git.notmuchmail.org Git - notmuch/blobdiff - test/test-lib.sh
tests: make timeout configurable with NOTMUCH_TEST_TIMEOUT (default: 2m)
[notmuch] / test / test-lib.sh
index 5274e6e1cf2c33394b78f2d7369aff64dc66f02a..507886ba83f97eb69ecad6e6d16693ac505d7cab 100644 (file)
@@ -117,6 +117,11 @@ add_gnupg_home ()
        echo debug-quick-random >> "$GNUPGHOME"/gpg.conf
     fi
     echo no-emit-version >> "$GNUPGHOME"/gpg.conf
+
+    # Change this if we ship a new test key
+    FINGERPRINT="5AEAB11F5E33DCE875DDB75B6D92612D94E46381"
+    SELF_USERID="Notmuch Test Suite <test_suite@notmuchmail.org> (INSECURE!)"
+    printf '%s:6:\n' "$FINGERPRINT" | gpg --quiet --batch --no-tty --import-ownertrust
 }
 
 # Each test should start with something like this, after copyright notices:
@@ -321,7 +326,7 @@ emacs_deliver_message ()
        "(let ((message-send-mail-function 'message-smtpmail-send-it)
                (mail-host-address \"example.com\")
               (smtpmail-smtp-server \"localhost\")
-              (smtpmail-smtp-service \"25025\"))
+              (smtpmail-smtp-service \"${smtp_dummy_port}\"))
           (notmuch-mua-mail)
           (message-goto-to)
           (insert \"test_suite@notmuchmail.org\nDate: 01 Jan 2000 12:00:00 -0000\")
@@ -346,8 +351,17 @@ emacs_deliver_message ()
 # Accepts arbitrary extra emacs/elisp functions to modify the message
 # before sending, which is useful to doing things like attaching files
 # to the message and encrypting/signing.
+#
+# If any GNU-style long-arguments (like --quiet or --decrypt=true) are
+# at the head of the argument list, they are sent directly to "notmuch
+# new" after message delivery
 emacs_fcc_message ()
 {
+    local nmn_args=''
+    while [[ "$1" =~ ^-- ]]; do
+        nmn_args="$nmn_args $1"
+        shift
+    done
     local subject="$1"
     local body="$2"
     shift 2
@@ -366,7 +380,7 @@ emacs_fcc_message ()
           (insert \"${body}\")
           $@
           (notmuch-mua-send-and-exit))" || return 1
-    notmuch new >/dev/null
+    notmuch new $nmn_args >/dev/null
 }
 
 # Add an existing, fixed corpus of email to the database.
@@ -382,14 +396,8 @@ add_email_corpus ()
     corpus=${1:-default}
 
     rm -rf ${MAIL_DIR}
-    if [ -d $TEST_DIRECTORY/corpora.mail/$corpus ]; then
-       cp -a $TEST_DIRECTORY/corpora.mail/$corpus ${MAIL_DIR}
-    else
-       cp -a $NOTMUCH_SRCDIR/test/corpora/$corpus ${MAIL_DIR}
-       notmuch new >/dev/null || die "'notmuch new' failed while adding email corpus"
-       mkdir -p $TEST_DIRECTORY/corpora.mail
-       cp -a ${MAIL_DIR} $TEST_DIRECTORY/corpora.mail/$corpus
-    fi
+    cp -a $NOTMUCH_SRCDIR/test/corpora/$corpus ${MAIL_DIR}
+    notmuch new >/dev/null || die "'notmuch new' failed while adding email corpus"
 }
 
 test_begin_subtest ()
@@ -612,6 +620,11 @@ notmuch_config_sanitize ()
     notmuch_dir_sanitize | notmuch_built_with_sanitize
 }
 
+notmuch_show_part ()
+{
+    awk '/^\014part}/{ f=0 }; { if (f) { print $0 } } /^\014part{ ID: '"$1"'/{ f=1 }'
+}
+
 # End of notmuch helper functions
 
 # Use test_set_prereq to tell that a particular prerequisite is available.
@@ -994,7 +1007,7 @@ test_python() {
 }
 
 test_ruby() {
-    MAIL_DIR=$MAIL_DIR ruby -I $NOTMUCH_SRCDIR/bindings/ruby> OUTPUT
+    MAIL_DIR=$MAIL_DIR $NOTMUCH_RUBY -I $NOTMUCH_SRCDIR/bindings/ruby> OUTPUT
 }
 
 test_C () {
@@ -1057,23 +1070,10 @@ test_init_ () {
 }
 
 
-. "$NOTMUCH_SRCDIR/test/test-lib-common.sh" || exit 1
+# Where to run the tests
+TEST_DIRECTORY=$NOTMUCH_BUILDDIR/test
 
-if [ "${NOTMUCH_GMIME_MAJOR}" = 3 ]; then
-    test_subtest_broken_gmime_3 () {
-       test_subtest_known_broken
-    }
-    test_subtest_broken_gmime_2 () {
-       true
-    }
-else
-    test_subtest_broken_gmime_3 () {
-       true
-    }
-    test_subtest_broken_gmime_2 () {
-       test_subtest_known_broken
-    }
-fi
+. "$NOTMUCH_SRCDIR/test/test-lib-common.sh" || exit 1
 
 emacs_generate_script