From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from localhost (localhost [127.0.0.1]) by olra.theworths.org (Postfix) with ESMTP id 9E615431FB6 for ; Wed, 7 Nov 2012 13:11:16 -0800 (PST) X-Virus-Scanned: Debian amavisd-new at olra.theworths.org X-Spam-Flag: NO X-Spam-Score: 0 X-Spam-Level: X-Spam-Status: No, score=0 tagged_above=-999 required=5 tests=[none] autolearn=disabled Received: from olra.theworths.org ([127.0.0.1]) by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id l+JkJnpTxklv for ; Wed, 7 Nov 2012 13:11:11 -0800 (PST) Received: from guru.guru-group.fi (guru.guru-group.fi [46.183.73.34]) by olra.theworths.org (Postfix) with ESMTP id 9D292431FAE for ; Wed, 7 Nov 2012 13:11:10 -0800 (PST) Received: from guru.guru-group.fi (localhost [IPv6:::1]) by guru.guru-group.fi (Postfix) with ESMTP id CEEA7100094; Wed, 7 Nov 2012 23:11:09 +0200 (EET) From: Tomi Ollila To: Mark Walters , notmuch@notmuchmail.org Subject: Re: [PATCH v3] contrib: notmuch-pick: add tests In-Reply-To: <1352321007-10541-1-git-send-email-markwalters1009@gmail.com> References: <1352321007-10541-1-git-send-email-markwalters1009@gmail.com> User-Agent: Notmuch/0.14+84~g8a199bf (http://notmuchmail.org) Emacs/24.2.1 (x86_64-unknown-linux-gnu) X-Face: HhBM'cA~ MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-BeenThere: notmuch@notmuchmail.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Nov 2012 21:11:16 -0000 On Wed, Nov 07 2012, Mark Walters wrote: > 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. > --- > > Version 2 is at id:1351797910-19305-1-git-send-email-markwalters1009@gmai= l.com. > > This versions fixes the bug Tomi pointed out of an unexported > variable. (I had an old symlink to notmuch-pick so it worked for me: I > have tested this version on a fresh clone of the tree.) > > I have also slightly modified the message selected for testing the > message-window so that this message does not have trailing > whitespace. This avoids triggering a whitespace warning when applying > the patch. Patch apply -- although test/pick.expected-output/notmuch-pick-show-window has trailing whitespace in line 30 (git am gave trailing whitespace message= ). Tests pass. Good enough for me. +1 > > Best wishes > > Mark Tomi > > > > > contrib/notmuch-pick/README | 5 + > contrib/notmuch-pick/run-tests.sh | 46 ++++++++++++ > contrib/notmuch-pick/test/emacs-pick | 78 ++++++++++++++= ++++++ > contrib/notmuch-pick/test/emacs-pick-sync | 64 ++++++++++++++= ++ > .../pick.expected-output/notmuch-pick-show-window | 40 ++++++++++ > .../notmuch-pick-single-thread | 6 ++ > .../pick.expected-output/notmuch-pick-tag-inbox | 53 +++++++++++++ > 7 files changed, 292 insertions(+), 0 deletions(-) > create mode 100755 contrib/notmuch-pick/run-tests.sh > create mode 100755 contrib/notmuch-pick/test/emacs-pick > create mode 100755 contrib/notmuch-pick/test/emacs-pick-sync > create mode 100644 contrib/notmuch-pick/test/pick.expected-output/notmuc= h-pick-show-window > create mode 100644 contrib/notmuch-pick/test/pick.expected-output/notmuc= h-pick-single-thread > create mode 100644 contrib/notmuch-pick/test/pick.expected-output/notmuc= h-pick-tag-inbox > > diff --git a/contrib/notmuch-pick/README b/contrib/notmuch-pick/README > index 8eed974..4200824 100644 > --- a/contrib/notmuch-pick/README > +++ b/contrib/notmuch-pick/README > @@ -15,6 +15,11 @@ Then after the "(require 'notmuch)" line in your .emac= s file add > the line "(require 'notmuch-pick nil t)". This will load notmuch-pick on > your next emacs start. >=20=20 > +TEST > + > +Just execute run-tests.sh and it should all work (it does require that > +notmuch has already been built). > + > USING PICK >=20=20 > The main key entries to notmuch pick are > diff --git a/contrib/notmuch-pick/run-tests.sh b/contrib/notmuch-pick/run= -tests.sh > new file mode 100755 > index 0000000..7ddc9cc > --- /dev/null > +++ b/contrib/notmuch-pick/run-tests.sh > @@ -0,0 +1,46 @@ > +#!/usr/bin/env bash > + > +set -eu > + > +fail() { > + echo ERROR $1 > + exit 1 > +} > + > +TESTS=3D"emacs-pick emacs-pick-sync" > +TESTFILES=3D"$TESTS pick.expected-output" > + > +export PICK_DIR=3D"`cd \`dirname "$0"\` && pwd`" > +PICK_TEST_DIR=3D"$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 > diff --git a/contrib/notmuch-pick/test/emacs-pick b/contrib/notmuch-pick/= test/emacs-pick > new file mode 100755 > index 0000000..eed5f02 > --- /dev/null > +++ b/contrib/notmuch-pick/test/emacs-pick > @@ -0,0 +1,78 @@ > +#!/usr/bin/env bash > + > +test_description=3D"emacs pick interface" > +. test-lib.sh > + > +EXPECTED=3D$TEST_DIRECTORY/pick.expected-output > + > +add_email_corpus > +test_begin_subtest "Do we have emacs" > +test_emacs '(insert "hello\n") > + (test-output)' > +cat <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 > diff --git a/contrib/notmuch-pick/test/emacs-pick-sync b/contrib/notmuch-= pick/test/emacs-pick-sync > new file mode 100755 > index 0000000..a7da0ff > --- /dev/null > +++ b/contrib/notmuch-pick/test/emacs-pick-sync > @@ -0,0 +1,64 @@ > +#!/usr/bin/env bash > + > +test_description=3D"emacs pick interface (sync parser)" > +. test-lib.sh > + > +EXPECTED=3D$TEST_DIRECTORY/pick.expected-output > + > +add_email_corpus > +test_begin_subtest "Do we have emacs" > +test_emacs '(insert "hello\n") > + (test-output)' > +cat <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 > diff --git a/contrib/notmuch-pick/test/pick.expected-output/notmuch-pick-= show-window b/contrib/notmuch-pick/test/pick.expected-output/notmuch-pick-s= how-window > new file mode 100644 > index 0000000..e16792b > --- /dev/null > +++ b/contrib/notmuch-pick/test/pick.expected-output/notmuch-pick-show-wi= ndow > @@ -0,0 +1,40 @@ > +Lars Kellogg-Stedman (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=3D3026: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. ] > +--=20 > +Lars Kellogg-Stedman > +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 > diff --git a/contrib/notmuch-pick/test/pick.expected-output/notmuch-pick-= single-thread b/contrib/notmuch-pick/test/pick.expected-output/notmuch-pick= -single-thread > new file mode 100644 > index 0000000..c9e5ef8 > --- /dev/null > +++ b/contrib/notmuch-pick/test/pick.expected-output/notmuch-pick-single-= thread > @@ -0,0 +1,6 @@ > + 2009-11-17 Mikhail Gusarov =E2=94=AC=E2=96=BA[notmuch] [PATCH 1= /2] Close message file after parsing message headers (inbox) > + 2009-11-17 Mikhail Gusarov =E2=94=9C=E2=94=80=E2=96=BA[notmuch]= [PATCH 2/2] Include to get uint32_t in C++ file with gcc 4.4 (i= nbox, unread) > + 2009-11-17 Carl Worth =E2=95=B0=E2=94=AC=E2=96=BA[notmuch]= [PATCH 1/2] Close message file after parsing message headers (inbox, unrea= d) > + 2009-11-17 Keith Packard =E2=95=B0=E2=94=AC=E2=96=BA ... = (inbox, unread) > + 2009-11-18 Carl Worth =E2=95=B0=E2=94=80=E2=96=BA ... = (inbox, unread) > +End of search results. > diff --git a/contrib/notmuch-pick/test/pick.expected-output/notmuch-pick-= tag-inbox b/contrib/notmuch-pick/test/pick.expected-output/notmuch-pick-tag= -inbox > new file mode 100644 > index 0000000..484141e > --- /dev/null > +++ b/contrib/notmuch-pick/test/pick.expected-output/notmuch-pick-tag-inb= ox > @@ -0,0 +1,53 @@ > + 2010-12-29 Fran=C3=A7ois Boulogne =E2=94=80=E2=96=BA[aur-general]= Guidelines: cp, mkdir vs install (inbox, unread) > + 2010-12-16 Olivier Berger =E2=94=80=E2=96=BAEssai accentu=C3= =A9 (inbox, unread) > + 2009-11-18 Chris Wilson =E2=94=80=E2=96=BA[notmuch] [PATCH 1= /2] Makefile: evaluate pkg-config once (inbox, unread) > + 2009-11-18 Alex Botero-Lowry =E2=94=AC=E2=96=BA[notmuch] [PATCH] = Error out if no query is supplied to search instead of going into an infini= te loop (attachment, inbox, unread) > + 2009-11-18 Carl Worth =E2=95=B0=E2=94=80=E2=96=BA[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 =E2=94=AC=E2=96=BA[notmuch] [PATCH] = Typsos (inbox, unread) > + 2009-11-18 Carl Worth =E2=95=B0=E2=94=80=E2=96=BA ... = (inbox, unread) > + 2009-11-17 Adrian Perez de Cast =E2=94=AC=E2=96=BA[notmuch] Introduc= ing myself (inbox, signed, unread) > + 2009-11-18 Keith Packard =E2=94=9C=E2=94=80=E2=96=BA ... = (inbox, unread) > + 2009-11-18 Carl Worth =E2=95=B0=E2=94=80=E2=96=BA ... = (inbox, unread) > + 2009-11-17 Israel Herraiz =E2=94=AC=E2=96=BA[notmuch] New to t= he list (inbox, unread) > + 2009-11-18 Keith Packard =E2=94=9C=E2=94=80=E2=96=BA ... = (inbox, unread) > + 2009-11-18 Carl Worth =E2=95=B0=E2=94=80=E2=96=BA ... = (inbox, unread) > + 2009-11-17 Jan Janak =E2=94=AC=E2=96=BA[notmuch] What a g= reat idea! (inbox, unread) > + 2009-11-17 Jan Janak =E2=94=9C=E2=94=80=E2=96=BA ... = (inbox, unread) > + 2009-11-18 Carl Worth =E2=95=B0=E2=94=80=E2=96=BA ... = (inbox, unread) > + 2009-11-17 Jan Janak =E2=94=AC=E2=96=BA[notmuch] [PATCH] = Older versions of install do not support -C. (inbox, unread) > + 2009-11-18 Carl Worth =E2=95=B0=E2=94=80=E2=96=BA ... = (inbox, unread) > + 2009-11-17 Aron Griffis =E2=94=AC=E2=96=BA[notmuch] archive = (inbox, unread) > + 2009-11-18 Keith Packard =E2=95=B0=E2=94=AC=E2=96=BA ... = (inbox, unread) > + 2009-11-18 Carl Worth =E2=95=B0=E2=94=80=E2=96=BA ... = (inbox, unread) > + 2009-11-17 Keith Packard =E2=94=AC=E2=96=BA[notmuch] [PATCH] = Make notmuch-show 'X' (and 'x') commands remove inbox (and unread) tags (in= box, unread) > + 2009-11-18 Carl Worth =E2=95=B0=E2=94=80=E2=96=BA[notmuch]= [PATCH] Make notmuch-show 'X' (and 'x') commands remove inbox (and unread)= tags (inbox, unread) > + 2009-11-17 Lars Kellogg-Stedman =E2=94=AC=E2=96=BA[notmuch] Working = with Maildir storage? (inbox, signed, unread) > + 2009-11-17 Mikhail Gusarov =E2=94=9C=E2=94=AC=E2=96=BA ... = (inbox, signed, unread) > + 2009-11-17 Lars Kellogg-Stedman =E2=94=82=E2=95=B0=E2=94=AC=E2=96=BA= ... (inbox, signed, unread) > + 2009-11-17 Mikhail Gusarov =E2=94=82 =E2=94=9C=E2=94=80=E2=96= =BA ... (inbox, unread) > + 2009-11-17 Keith Packard =E2=94=82 =E2=95=B0=E2=94=AC=E2=96= =BA ... (inbox, unread) > + 2009-11-18 Lars Kellogg-Stedman =E2=94=82 =E2=95=B0=E2=94=80=E2=96= =BA ... (inbox, signed, unread) > + 2009-11-18 Carl Worth =E2=95=B0=E2=94=80=E2=96=BA ... = (inbox, unread) > + 2009-11-17 Mikhail Gusarov =E2=94=AC=E2=96=BA[notmuch] [PATCH 1= /2] Close message file after parsing message headers (inbox, unread) > + 2009-11-17 Mikhail Gusarov =E2=94=9C=E2=94=80=E2=96=BA[notmuch]= [PATCH 2/2] Include to get uint32_t in C++ file with gcc 4.4 (i= nbox, unread) > + 2009-11-17 Carl Worth =E2=95=B0=E2=94=AC=E2=96=BA[notmuch]= [PATCH 1/2] Close message file after parsing message headers (inbox, unrea= d) > + 2009-11-17 Keith Packard =E2=95=B0=E2=94=AC=E2=96=BA ... = (inbox, unread) > + 2009-11-18 Carl Worth =E2=95=B0=E2=94=80=E2=96=BA ... = (inbox, unread) > + 2009-11-18 Keith Packard =E2=94=AC=E2=96=BA[notmuch] [PATCH] = Create a default notmuch-show-hook that highlights URLs and uses word-wrap = (inbox, unread) > + 2009-11-18 Alexander Botero-Low =E2=95=B0=E2=94=80=E2=96=BA[notmuch]= [PATCH] Create a default notmuch-show-hook that highlights URLs and uses w= ord-wrap (inbox, unread) > + 2009-11-18 Alexander Botero-Low =E2=94=80=E2=96=BA[notmuch] request = for pull (inbox, unread) > + 2009-11-18 Jjgod Jiang =E2=94=AC=E2=96=BA[notmuch] Mac OS X= /Darwin compatibility issues (inbox, unread) > + 2009-11-18 Alexander Botero-Low =E2=95=B0=E2=94=AC=E2=96=BA ... = (inbox, unread) > + 2009-11-18 Jjgod Jiang =E2=95=B0=E2=94=AC=E2=96=BA ... = (inbox, unread) > + 2009-11-18 Alexander Botero-Low =E2=95=B0=E2=94=80=E2=96=BA ... = (inbox, unread) > + 2009-11-18 Rolland Santimano =E2=94=80=E2=96=BA[notmuch] Link to = mailing list archives ? (inbox, unread) > + 2009-11-18 Jan Janak =E2=94=80=E2=96=BA[notmuch] [PATCH] = notmuch new: Support for conversion of spool subdirectories into tags (inbo= x, unread) > + 2009-11-18 Stewart Smith =E2=94=80=E2=96=BA[notmuch] [PATCH] = count_files: sort directory in inode order before statting (inbox, unread) > + 2009-11-18 Stewart Smith =E2=94=80=E2=96=BA[notmuch] [PATCH 2= /2] Read mail directory in inode number order (inbox, unread) > + 2009-11-18 Stewart Smith =E2=94=80=E2=96=BA[notmuch] [PATCH] = Fix linking with gcc to use g++ to link in C++ libs. (inbox, unread) > + 2009-11-18 Lars Kellogg-Stedman =E2=94=AC=E2=96=BA[notmuch] "notmuch= help" outputs to stderr? (attachment, inbox, signed, unread) > + 2009-11-18 Lars Kellogg-Stedman =E2=95=B0=E2=94=80=E2=96=BA ... = (attachment, inbox, signed, unrea= d) > + 2009-11-17 Mikhail Gusarov =E2=94=80=E2=96=BA[notmuch] [PATCH] = Handle rename of message file (inbox, unread) > + 2009-11-17 Alex Botero-Lowry =E2=94=AC=E2=96=BA[notmuch] prelimin= ary FreeBSD support (attachment, inbox, unread) > + 2009-11-17 Carl Worth =E2=95=B0=E2=94=80=E2=96=BA ... = (inbox, unread) > +End of search results. > --=20 > 1.7.9.1 > > _______________________________________________ > notmuch mailing list > notmuch@notmuchmail.org > http://notmuchmail.org/mailman/listinfo/notmuch