aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-12-02test: add broken roundtrip testDavid Bremner
We demonstrate the current notmuch restore parser being confused by message-id's and tags containing non alpha numeric characters (particularly space and parentheses are problematic because they are not escaped by notmuch dump). We save the files as hex escaped on disk so that terminal emulators will not get confused if the test fails (as we mostly expect it to do).
2012-12-02test: add generator for random "stub" messagesDavid Bremner
Initial use case is testing dump and restore, so we only have message-ids and tags. The message ID's are nothing like RFC compliant, but it doesn't seem any harder to roundtrip random UTF-8 strings than RFC-compliant ones. Tags are UTF-8, even though notmuch is in principle more generous than that. updated for id:m2wr04ocro.fsf@guru.guru-group.fi - talk about Unicode value rather some specific encoding - call talloc_realloc less times
2012-12-02test: add database routines for testingDavid Bremner
Initially, provide a way to create "stub" messages in the notmuch database without corresponding files. This is essentially cut and paste from lib/database.cc. This is a seperate file since we don't want to export these symbols from libnotmuch or bloat the library with non-exported code.
2012-12-02test/hex-escaping: new test for hex escaping routinesDavid Bremner
These are more like unit tests, to (try to) make sure the library functionality is working before building more complicated things on top of it.
2012-12-02test/hex-xcode: new test binaryDavid Bremner
This program is used both as a test-bed/unit-tester for ../util/hex-escape.c, and also as a utility in future tests of dump and restore.
2012-12-02hex-escape: (en|de)code strings to/from restricted character setDavid Bremner
The character set is chosen to be suitable for pathnames, and the same as that used by contrib/nmbug [With additions by Jani Nikula]
2012-12-01contrib: pick: use async parser from libMark Walters
This moves notmuch-pick to use the newly split out async json parser from notmuch-lib.el.
2012-12-01contrib: pick: remove some debug timing messagesmarkwalters1009
When I submitted notmuch-pick I deleted most of the debug messages but I missed two cases. Remove them now.
2012-12-01emacs: Split the function notmuch-show-clean-addressMark Walters
This function is also used by pick so split it out in preperation for moving to lib. In fact, pick and show want a slightly different combination of name and email on return so make the separated function return them as a pair, and let show or pick extract the combination they want from that.
2012-12-01lib: fix warnings when building with clangJani Nikula
Building notmuch with CC=clang and CXX=clang++ produces the warnings: CC -O2 lib/tags.o lib/tags.c:43:5: warning: expression result unused [-Wunused-value] talloc_steal (tags, list); ^~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/talloc.h:345:143: note: expanded from: ...__location__); __talloc_steal_ret; }) ^~~~~~~~~~~~~~~~~~ 1 warning generated. CXX -O2 lib/message.o lib/message.cc:791:5: warning: expression result unused [-Wunused-value] talloc_reference (message, message->tag_list); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/talloc.h:932:36: note: expanded from: ...(_TALLOC_TYPEOF(ptr))_talloc_reference_loc((ctx),(ptr), __location__) ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. Check talloc_reference() return value, and explicitly ignore talloc_steal() return value as it has no failure modes, to silence the warnings.
2012-12-01news: add news entry for notmuch-pickmarkwalters1009
2012-12-01configure: really expand libdir_expandedDavid Bremner
It turns out that if people really use configure in autotools style and pass libdir containing '${prefix}/foo' then the ldconfig previously failed. This uses sed for portability (versus bash parameter expansion with substitution) and hopefully a bit more robustness than blindly parameter expanding the string.
2012-11-29performance-test: add units to In and OutDavid Bremner
Austin Read enough Fine Manuals to figure out this is in multiples of 512 bytes.
2012-11-29performance-test/README: update instructions for fetching corpus.David Bremner
It turns out not everybody on the planet has my gpg key.
2012-11-29test: Don't print 'nil' at the beginning of emacs-subject-to-filenameAustin Clements
2012-11-29test: Use associative arrays to track external prereqsAustin Clements
Previously, the test framework generated a variable name for each external prereq as a poor man's associative array. Unfortunately, prereqs names may not be legal variable names, leading to unintelligible bash errors like test_missing_external_prereq_emacsclient.emacs24_=t: command not found Using proper associative arrays to track prereqs, in addition to being much cleaner than generating variable names and using grep to carefully construct unique string lists, removes restrictions on prereq names.
2012-11-29test: Abort driver if a test script abortsAustin Clements
Previously, if a test script aborted (e.g., because it passed too few arguments to a test function), the test driver loop would simply continue on to the next test script and the final results would declare that everything passed (except that the test count would look suspiciously low, but maybe you just misremembered how many tests there were). Now, if a test script exits with a non-zero status and did not produce a final results file, we propagate that failure out of the driver loop immediately. To keep this simple, this patch removes the PID from the test-results file name. This PID was inherited from the git test system and seems unnecessary, since the file name already includes the name of the test script and the test-results directory is created anew for each run.
2012-11-29test: Make the emacsclient binary user-configurableAustin Clements
And require that if TEST_EMACS is specified, so is TEST_EMACSCLIENT. Previously, the test framework always used "emacsclient", even if the Emacs in use was overridden by TEST_EMACS. This causes problems if both Emacs 23 and Emacs 24 are installed, the Emacs 23 emacsclient is the system default, but TEST_EMACS is set to emacs24. Specifically, with an Emacs 24 server and an Emacs 23 client, emacs tests that run very quickly may produce no output from emacsclient, causing the test to fail. The Emacs server uses a very simple line-oriented protocol in which the client sends a request to evaluate an expression and the server sends a request to print the result of evaluation. Prior to Emacs bzr commit 107565 on March 11th, 2012 (released in Emacs 24.1), if multiple commands were sent to the emacsclient between when it sent the evaluation command and when it entered its receive loop, it would only process the first response command, ignoring the rest of the received buffer. This wasn't a problem with the Emacs 23 server because it sent only the command to print the evaluation result. However, the Emacs 24 server first sends an unprompted command specifying the PID of the Emacs server, then processes the evaluation request, then sends the command to print the result. If the evaluation is fast enough, it can send both of these commands before emacsclient enters the receive loop. Hence, if an Emacs 24 server is used with an Emacs 23 emacsclient, it may miss the response printing command, ultimately causing intermittent notmuch test failures.
2012-11-27test: Quote $output in calls to test_expect_equalAustin Clements
Previously, many tests in emacs-subject-to-filename didn't quote the $output argument to test_expect_equal. As a result, if $output was empty, test_expect_equal would be passed only one argument and would abort the entire test script. By quoting the argument, we ensure test_expect_equal will always receive two arguments.
2012-11-26new: Skip ignored broken symlinksAustin Clements
We now test for user ignore patterns before attempting to determine if a directory entry is itself a directory. As a result, we no longer abort for broken symlinks if the user has explicitly ignored them. This fixes the test added in the previous patch. It also slightly changes the debug output checked by another test of ignores.
2012-11-26test: Add a test for skipping ignored broken symlinksAustin Clements
Currently marked as broken because we abort on broken symlinks, even if they are in the ignore list.
2012-11-26emacs: less guessing of character set in messagesTomi Ollila
The macro with-current-notmuch-show-message executes command `notmuch show --format=raw id:...` which just outputs the contents of the mail file verbatim (into temporary buffer). In case e.g. utf-8 locale is used the temporary buffer has buffer-file-coding-system as utf-8. In this case Emacs converts the data to multibyte format, guessing that input is in utf-8. However, the "raw" (MIME) message may contain octet data in any other 8bit format, and as no (MIME-)content spesific handling to the message is done at this point, conversion to other formats may lose information. By setting coding-system-for-read 'no-conversion drops the conversion part and makes this handle input as notmuch-get-bodypart-internal() does. This marks the broken test in previous change fixed.
2012-11-26test/emacs: test saving of attachment containing 8bit octetsTomi Ollila
This test catches the case 8bit octets in an attachment gets converted or lost when saving attachment to the file. This test is marked known broken.
2012-11-26lib: Reject multi-message mboxes and deprecate single-message mboxAustin Clements
Previously, we would treat multi-message mboxes as one giant email, which, besides the obvious incorrect indexing, often led to out-of-memory errors for archival mboxes. Now we explicitly reject multi-message mboxes. For historical reasons, we retain support for single-message mboxes, but official deprecate this behavior.
2012-11-26test: Test for ignoring multi-message mboxAustin Clements
This test is currently broken. Note that its brokenness cascades and causes the next test to fail as well (because notmuch incorrectly indexes the mbox file).
2012-11-26test: Test notmuch new for single-message mboxAustin Clements
We support this for historical reasons.
2012-11-26test: initial performance testing infrastructureDavid Bremner
This is not near as fancy as as the unit tests, on the theory that the code should typically be crashing when performance tuning. Nonetheless, there is plenty of room for improvement. Several more of the pieces of the test infrastructure (e.g. the option parsing) could be factored out into test/test-lib-common.sh
2012-11-25test: factor out part of test-lib.sh into test-lib-common.shDavid Bremner
The idea is to use some of the simpler parts of the test suite infrastructure to help run performance tests.
2012-11-25notmuch-show.el: handle the case where icalendar-import-buffer returns nilTomi Ollila
icalendar-import-buffer can fail by an error signal (which have been witnessed) but according to its docstring it can also return nil when failing (it returns t when succeeding). Now that the error is caught by the caller of notmuch-show-inset-part-* functions in case icalendar-import-buffer returns nil an explicit error is signaled and unwind-protect takes care of deleting the temporary file (just in case, it is usually not written to the fs yet).
2012-11-25notmuch-show.el: import calendar data with public function after CR removalTomi Ollila
notmuch-get-bodypart-content provides raw data to its caller so that it can be stored verbatim whenever needed. icalendar functions expect Emacs to do EOL conversion for the data given to these. Therefore it the CRLF -> LF conversion is now done explicitly. The calls to private functions icalendar--convert-ical-to-diary and icalendar--read-element are replaced with call to public function icalendar-import-buffer.
2012-11-24test: always source test-lib.sh as ./test-lib.shTomi Ollila
There are currently 45 TESTS scripts. 36 of those load test-lib.sh using '. ./test-lib.sh' and 9 '. test-lib.sh'. In latter case test-lib.sh is first searched from directories in PATH (posix) and then from current directory (bash feature). Changed the 9 files to execute '. ./test-lib.sh'. The test-lib.sh should never be loaded from directory in PATH.
2012-11-21test: Produce useful output when the HTML with images test failsAustin Clements
Previously, this would simply indicate that the grep failed without any indication of the Emacs output it failed on. Now we take advantage of the test framework's handling of stdout to display the incorrect Emacs output if the test fails.
2012-11-19contrib: notmuch-pick: add testsMark Walters
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.
2012-11-17test: add nontrivial test for restore --accumulate.David Bremner
It seems we have never tested the case that restore --accumulate actually adds tags. I noticed this when I started optimizing and no tests failed. The bracketing with "restore --input=dump.expected" are to make sure we start in a known state, and we leave the database in a known state for the next test.
2012-11-17test: add more informative titles to restore --accumulate testsDavid Bremner
Thanks to Ethan for the suggestion.
2012-11-16Fixed 2 misspellings of word 'separate'Tomi Ollila
"Seperate: The second most common misspelling on the Internet..." (from http://www.re-vision.com/spelling/separate.html). s/seperate/separate/ in debian/NEWS.Debian & test/README done.
2012-11-16contrib: pick: bugfix when trying to show a non-messageMark Walters
If the user pressed return on the end result status line it gave a blank message. Modify the function notmuch-pick-get-message-id to return nil rather than an empty message-id in this case to fix this. This also fixes a bug in the (lack of) quoting of the id string.
2012-11-16Update notmuch-mutt requirements in README file.Kevin J. McCarthy
This updates the notmuch-mutt README file with requirements for the recently added duplicate removal patch. -Kevin
2012-11-16notmuch-dump: tidy formattingDavid Bremner
More uncrustify at work.
2012-11-16notmuch-restore: tidy formattingDavid Bremner
This is again the work of uncrustify. I remember there is some controversy about "! foo" versus "!foo", but in context I think "! foo" looks OK. Also, for functions "! foo (blah)" seems better than "!foo (blah)".
2012-11-16notmuch-tag: tidy formattingDavid Bremner
This is just the result of running uncrustify.
2012-11-16NEWS (for 0.15): Added note about Bcc & Reply-To headers in json outputTomi Ollila
notmuch show --format json now includes Bcc and Reply-To headers of the message. Mention that in NEWS. (Heavily modified version of text originally from Michal Nazarewicz.)
2012-11-15notmuch-restore: fix error message for extra positional parameter.David Bremner
Note that a single positional parameter will take this code path also, so the old message really makes no sense anymore.
2012-11-15notmuch-restore: remove extra increment of optindDavid Bremner
This is left over from when the file name was a positional parameter.
2012-11-15test: Fix HTML rendering testAustin Clements
The test designed to exercise Emacs' rendering of HTML emails containing images inadvertently assumed w3m was available under Emacs 23. The real point of this test was to check that Emacs 24's shr renderer didn't crash when given img tags, so use shr if it's available, html2text otherwise (which is built in), and do only a simple sanity check of the result.
2012-11-15emacs: Buttonize mid: linksAustin Clements
This adds support for RFC 2392 mid: message ID links.
2012-11-15emacs: Improve the regexp used to match id:'s in messagesAustin Clements
This regexp agrees with Xapian query syntax much more closely, though we specifically disallow various cases that would be confusing in the context of an email body (e.g., punctuation at the end of an id: link is not considered part of the id: link because it's probably part of the surrounding text). In particular, this handles id: links that are not surrounded by quotes much better, which stash is much more likely to generate now that we don't quote id's that don't need to be quoted. It also handles quoted id: links better. We update the buttonization test to reflect the new pattern.
2012-11-15test: Test buttonization of id: linksAustin Clements
This matches the current behavior of the buttonizer, so it passes, but many of these cases are not what you'd want (and some of them aren't even valid Xapian queries). The next patch will fix the handling of these cases and update the test.
2012-11-10test: expand regex in test/basicDavid Bremner
Over time, maintaining this very long regex has become irritating, especially when resolving conflicts. This patch replaces the call to sed with multiple extra arguments to find. Since each test binary is now on it's own line, this should make resolving conflicts easier.
2012-11-08devel: Document schemata in STYLEAustin Clements