contrib: notmuch-pick: add tests

The test should be run using the wrapper run-tests.sh.  This links
the tests into the normal notmuch TEST_DIRECTORY and runs them from
there. After the test is complete then the links are removed.
This commit is contained in:
Mark Walters 2012-11-07 20:43:27 +00:00 committed by David Bremner
parent be66f3f709
commit e0adf10be8
7 changed files with 292 additions and 0 deletions

View file

@ -15,6 +15,11 @@ Then after the "(require 'notmuch)" line in your .emacs file add
the line "(require 'notmuch-pick nil t)". This will load notmuch-pick on the line "(require 'notmuch-pick nil t)". This will load notmuch-pick on
your next emacs start. your next emacs start.
TEST
Just execute run-tests.sh and it should all work (it does require that
notmuch has already been built).
USING PICK USING PICK
The main key entries to notmuch pick are The main key entries to notmuch pick are

View file

@ -0,0 +1,46 @@
#!/usr/bin/env bash
set -eu
fail() {
echo ERROR $1
exit 1
}
TESTS="emacs-pick emacs-pick-sync"
TESTFILES="$TESTS pick.expected-output"
export PICK_DIR="`cd \`dirname "$0"\` && pwd`"
PICK_TEST_DIR="$PICK_DIR/test"
for f in $TESTFILES
do
test -f "$PICK_TEST_DIR/$f" || test -d "$PICK_TEST_DIR/$f" || fail "$PICK_TEST_DIR/$f does not exist"
done
cd "$PICK_DIR/../../test"
test -x ../notmuch || fail "`cd .. && pwd`/notmuch has not been built"
for f in $TESTFILES
do
if test -f "$f"
then
fail "$f exists"
fi
done
trap "rm -f $TESTFILES" 0
for f in $TESTFILES
do
ln -s "$PICK_TEST_DIR/$f" .
done
#don't exec -- traps would not run.
for f in $TESTS
do
echo $f
./$f
done

View file

@ -0,0 +1,78 @@
#!/usr/bin/env bash
test_description="emacs pick interface"
. test-lib.sh
EXPECTED=$TEST_DIRECTORY/pick.expected-output
add_email_corpus
test_begin_subtest "Do we have emacs"
test_emacs '(insert "hello\n")
(test-output)'
cat <<EOF >EXPECTED
hello
EOF
test_expect_equal_file OUTPUT EXPECTED
test_begin_subtest "Basic notmuch-pick view in emacs"
test_emacs '(add-to-list (quote load-path) "'$PICK_DIR'")
(require (quote notmuch-pick))
(notmuch-pick "tag:inbox")
(notmuch-test-wait)
(test-output)
(delete-other-windows)'
test_expect_equal_file OUTPUT $EXPECTED/notmuch-pick-tag-inbox
test_begin_subtest "Navigation of notmuch-hello to search results"
test_emacs '(notmuch-hello)
(goto-char (point-min))
(re-search-forward "inbox")
(widget-button-press (1- (point)))
(notmuch-test-wait)
(notmuch-pick-from-search-current-query)
(notmuch-test-wait)
(test-output)
(delete-other-windows)'
test_expect_equal_file OUTPUT $EXPECTED/notmuch-pick-tag-inbox
test_begin_subtest "Pick of a single thread (from search)"
test_emacs '(notmuch-hello)
(goto-char (point-min))
(re-search-forward "inbox")
(widget-button-press (1- (point)))
(notmuch-test-wait)
(notmuch-pick-from-search-thread)
(notmuch-test-wait)
(test-output)
(delete-other-windows)'
test_expect_equal_file OUTPUT $EXPECTED/notmuch-pick-single-thread
test_begin_subtest "Pick of a single thread (from show)"
test_emacs '(notmuch-hello)
(goto-char (point-min))
(re-search-forward "inbox")
(widget-button-press (1- (point)))
(notmuch-test-wait)
(notmuch-search-show-thread)
(notmuch-pick-from-show-current-query)
(notmuch-test-wait)
(test-output)
(delete-other-windows)'
test_expect_equal_file OUTPUT $EXPECTED/notmuch-pick-single-thread
test_begin_subtest "Message window of pick"
test_emacs '(notmuch-hello)
(goto-char (point-min))
(re-search-forward "inbox")
(widget-button-press (1- (point)))
(notmuch-test-wait)
(notmuch-search-next-thread)
(notmuch-pick-from-search-thread)
(notmuch-test-wait)
(select-window notmuch-pick-message-window)
(test-output)
(delete-other-windows)'
cp OUTPUT /tmp/mjwout
test_expect_equal_file OUTPUT $EXPECTED/notmuch-pick-show-window
test_done

View file

@ -0,0 +1,64 @@
#!/usr/bin/env bash
test_description="emacs pick interface (sync parser)"
. test-lib.sh
EXPECTED=$TEST_DIRECTORY/pick.expected-output
add_email_corpus
test_begin_subtest "Do we have emacs"
test_emacs '(insert "hello\n")
(test-output)'
cat <<EOF >EXPECTED
hello
EOF
test_expect_equal_file OUTPUT EXPECTED
test_begin_subtest "Basic notmuch-pick view in emacs"
test_emacs '(add-to-list (quote load-path) "'$PICK_DIR'")
(require (quote notmuch-pick))
(setq notmuch-pick-asynchronous-parser nil)
(notmuch-pick "tag:inbox")
(notmuch-test-wait)
(test-output)
(delete-other-windows)'
test_expect_equal_file OUTPUT $EXPECTED/notmuch-pick-tag-inbox
test_begin_subtest "Navigation of notmuch-hello to search results"
test_emacs '(notmuch-hello)
(goto-char (point-min))
(re-search-forward "inbox")
(widget-button-press (1- (point)))
(notmuch-test-wait)
(notmuch-pick-from-search-current-query)
(notmuch-test-wait)
(test-output)
(delete-other-windows)'
test_expect_equal_file OUTPUT $EXPECTED/notmuch-pick-tag-inbox
test_begin_subtest "Pick of a single thread (from search)"
test_emacs '(notmuch-hello)
(goto-char (point-min))
(re-search-forward "inbox")
(widget-button-press (1- (point)))
(notmuch-test-wait)
(notmuch-pick-from-search-thread)
(notmuch-test-wait)
(test-output)
(delete-other-windows)'
test_expect_equal_file OUTPUT $EXPECTED/notmuch-pick-single-thread
test_begin_subtest "Pick of a single thread (from show)"
test_emacs '(notmuch-hello)
(goto-char (point-min))
(re-search-forward "inbox")
(widget-button-press (1- (point)))
(notmuch-test-wait)
(notmuch-search-show-thread)
(notmuch-pick-from-show-current-query)
(notmuch-test-wait)
(test-output)
(delete-other-windows)'
test_expect_equal_file OUTPUT $EXPECTED/notmuch-pick-single-thread
test_done

View file

@ -0,0 +1,40 @@
Lars Kellogg-Stedman <lars@seas.harvard.edu> (2009-11-17) (inbox signed)
Subject: [notmuch] Working with Maildir storage?
To: notmuch@notmuchmail.org
Date: Tue, 17 Nov 2009 14:00:54 -0500
[ multipart/mixed ]
[ multipart/signed ]
[ text/plain ]
I saw the LWN article and decided to take a look at notmuch. I'm
currently using mutt and mairix to index and read a collection of
Maildir mail folders (around 40,000 messages total).
notmuch indexed the messages without complaint, but my attempt at
searching bombed out. Running, for example:
notmuch search storage
Resulted in 4604 lines of errors along the lines of:
Error opening
/home/lars/Mail/read-messages.2008/cur/1246413773.24928_27334.hostname,U=3026:2,S:
Too many open files
I'm curious if this is expected behavior (i.e., notmuch does not work
with Maildir) or if something else is going on.
Cheers,
[ 4-line signature. Click/Enter to show. ]
--
Lars Kellogg-Stedman <lars@seas.harvard.edu>
Senior Technologist, Computing and Information Technology
Harvard University School of Engineering and Applied Sciences
[ application/pgp-signature ]
[ text/plain ]
[ 4-line signature. Click/Enter to show. ]
_______________________________________________
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch

View file

@ -0,0 +1,6 @@
2009-11-17 Mikhail Gusarov ┬►[notmuch] [PATCH 1/2] Close message file after parsing message headers (inbox)
2009-11-17 Mikhail Gusarov ├─►[notmuch] [PATCH 2/2] Include <stdint.h> to get uint32_t in C++ file with gcc 4.4 (inbox, unread)
2009-11-17 Carl Worth ╰┬►[notmuch] [PATCH 1/2] Close message file after parsing message headers (inbox, unread)
2009-11-17 Keith Packard ╰┬► ... (inbox, unread)
2009-11-18 Carl Worth ╰─► ... (inbox, unread)
End of search results.

View file

@ -0,0 +1,53 @@
2010-12-29 François Boulogne ─►[aur-general] Guidelines: cp, mkdir vs install (inbox, unread)
2010-12-16 Olivier Berger ─►Essai accentué (inbox, unread)
2009-11-18 Chris Wilson ─►[notmuch] [PATCH 1/2] Makefile: evaluate pkg-config once (inbox, unread)
2009-11-18 Alex Botero-Lowry ┬►[notmuch] [PATCH] Error out if no query is supplied to search instead of going into an infinite loop (attachment, inbox, unread)
2009-11-18 Carl Worth ╰─►[notmuch] [PATCH] Error out if no query is supplied to search instead of going into an infinite loop (inbox, unread)
2009-11-17 Ingmar Vanhassel ┬►[notmuch] [PATCH] Typsos (inbox, unread)
2009-11-18 Carl Worth ╰─► ... (inbox, unread)
2009-11-17 Adrian Perez de Cast ┬►[notmuch] Introducing myself (inbox, signed, unread)
2009-11-18 Keith Packard ├─► ... (inbox, unread)
2009-11-18 Carl Worth ╰─► ... (inbox, unread)
2009-11-17 Israel Herraiz ┬►[notmuch] New to the list (inbox, unread)
2009-11-18 Keith Packard ├─► ... (inbox, unread)
2009-11-18 Carl Worth ╰─► ... (inbox, unread)
2009-11-17 Jan Janak ┬►[notmuch] What a great idea! (inbox, unread)
2009-11-17 Jan Janak ├─► ... (inbox, unread)
2009-11-18 Carl Worth ╰─► ... (inbox, unread)
2009-11-17 Jan Janak ┬►[notmuch] [PATCH] Older versions of install do not support -C. (inbox, unread)
2009-11-18 Carl Worth ╰─► ... (inbox, unread)
2009-11-17 Aron Griffis ┬►[notmuch] archive (inbox, unread)
2009-11-18 Keith Packard ╰┬► ... (inbox, unread)
2009-11-18 Carl Worth ╰─► ... (inbox, unread)
2009-11-17 Keith Packard ┬►[notmuch] [PATCH] Make notmuch-show 'X' (and 'x') commands remove inbox (and unread) tags (inbox, unread)
2009-11-18 Carl Worth ╰─►[notmuch] [PATCH] Make notmuch-show 'X' (and 'x') commands remove inbox (and unread) tags (inbox, unread)
2009-11-17 Lars Kellogg-Stedman ┬►[notmuch] Working with Maildir storage? (inbox, signed, unread)
2009-11-17 Mikhail Gusarov ├┬► ... (inbox, signed, unread)
2009-11-17 Lars Kellogg-Stedman │╰┬► ... (inbox, signed, unread)
2009-11-17 Mikhail Gusarov │ ├─► ... (inbox, unread)
2009-11-17 Keith Packard │ ╰┬► ... (inbox, unread)
2009-11-18 Lars Kellogg-Stedman │ ╰─► ... (inbox, signed, unread)
2009-11-18 Carl Worth ╰─► ... (inbox, unread)
2009-11-17 Mikhail Gusarov ┬►[notmuch] [PATCH 1/2] Close message file after parsing message headers (inbox, unread)
2009-11-17 Mikhail Gusarov ├─►[notmuch] [PATCH 2/2] Include <stdint.h> to get uint32_t in C++ file with gcc 4.4 (inbox, unread)
2009-11-17 Carl Worth ╰┬►[notmuch] [PATCH 1/2] Close message file after parsing message headers (inbox, unread)
2009-11-17 Keith Packard ╰┬► ... (inbox, unread)
2009-11-18 Carl Worth ╰─► ... (inbox, unread)
2009-11-18 Keith Packard ┬►[notmuch] [PATCH] Create a default notmuch-show-hook that highlights URLs and uses word-wrap (inbox, unread)
2009-11-18 Alexander Botero-Low ╰─►[notmuch] [PATCH] Create a default notmuch-show-hook that highlights URLs and uses word-wrap (inbox, unread)
2009-11-18 Alexander Botero-Low ─►[notmuch] request for pull (inbox, unread)
2009-11-18 Jjgod Jiang ┬►[notmuch] Mac OS X/Darwin compatibility issues (inbox, unread)
2009-11-18 Alexander Botero-Low ╰┬► ... (inbox, unread)
2009-11-18 Jjgod Jiang ╰┬► ... (inbox, unread)
2009-11-18 Alexander Botero-Low ╰─► ... (inbox, unread)
2009-11-18 Rolland Santimano ─►[notmuch] Link to mailing list archives ? (inbox, unread)
2009-11-18 Jan Janak ─►[notmuch] [PATCH] notmuch new: Support for conversion of spool subdirectories into tags (inbox, unread)
2009-11-18 Stewart Smith ─►[notmuch] [PATCH] count_files: sort directory in inode order before statting (inbox, unread)
2009-11-18 Stewart Smith ─►[notmuch] [PATCH 2/2] Read mail directory in inode number order (inbox, unread)
2009-11-18 Stewart Smith ─►[notmuch] [PATCH] Fix linking with gcc to use g++ to link in C++ libs. (inbox, unread)
2009-11-18 Lars Kellogg-Stedman ┬►[notmuch] "notmuch help" outputs to stderr? (attachment, inbox, signed, unread)
2009-11-18 Lars Kellogg-Stedman ╰─► ... (attachment, inbox, signed, unread)
2009-11-17 Mikhail Gusarov ─►[notmuch] [PATCH] Handle rename of message file (inbox, unread)
2009-11-17 Alex Botero-Lowry ┬►[notmuch] preliminary FreeBSD support (attachment, inbox, unread)
2009-11-17 Carl Worth ╰─► ... (inbox, unread)
End of search results.