Dmitry Kurochkin [Wed, 21 Dec 2011 18:18:25 +0000 (22:18 +0400)]
test: add general Emacs hook counter
Replace `notmuch-hello-mode-hook-counter' with general `hook-counter'
and `add-hook-counter' functions to allow counting calls for any hook.
Thomas Jost [Wed, 21 Dec 2011 13:44:19 +0000 (14:44 +0100)]
emacs: Change the default thousands separator to a space
This had been discussed and decided on IRC.
Rationale:
Therefore the space is recommended in the SI/ISO 31-0 standard, and the
International Bureau of Weights and Measures states that "for numbers with
many digits the digits may be divided into groups of three by a thin space, in
order to facilitate reading. Neither dots nor commas are inserted in the
spaces between groups of three".
(http://en.wikipedia.org/wiki/Decimal_separator#Digit_grouping)
Thomas Jost [Wed, 21 Dec 2011 13:44:18 +0000 (14:44 +0100)]
emacs: rename notmuch-decimal-separator to notmuch-hello-thousands-separator
In 123,456.78, "." is the decimal separator, but "," is the thousands separator.
David Edmondson [Wed, 21 Dec 2011 12:35:27 +0000 (12:35 +0000)]
emacs: Don't prompt the user to choose from zero matching addresses.
If the address matching function generates no matches, don't prompt
the user to choose between them (!). Instead, generate a message to
report that there were no matches.
Jani Nikula [Tue, 20 Dec 2011 19:53:14 +0000 (21:53 +0200)]
emacs: Fix notmuch-mua-user-agent defcustom
The :options keyword is not meaningful for function type. Also, it was not
possible to enter nil value, contrary to the notmuch-mua-user-agent
defcustom documentation. Specify the alternatives using choice type, taking
nil into account.
Signed-off-by: Jani Nikula <jani@nikula.org>
Jani Nikula [Tue, 20 Dec 2011 19:53:13 +0000 (21:53 +0200)]
emacs: Fix notmuch-hello-tag-list-make-query defcustom
It was not possible to define custom filters or filter functions because
the types were const. Remove const to allow editing.
Signed-off-by: Jani Nikula <jani@nikula.org>
Thomas Jost [Wed, 21 Dec 2011 01:28:14 +0000 (02:28 +0100)]
emacs: add notmuch-hello-refresh-hook
This hook is called every time a notmuch-hello buffer is updated.
David Edmondson [Tue, 20 Dec 2011 15:20:04 +0000 (15:20 +0000)]
notmuch: Quiet buildbot warnings.
Cast away the result of various *write functions. Provide a default
value for some variables to avoid "use before set" warnings.
Aaron Ecay [Sat, 17 Dec 2011 15:47:48 +0000 (10:47 -0500)]
Don't quote lambda forms
This generates byte-compiler warnings on (at least) current trunk
versions of Emacs. The quote is not necessary; lambda forms are
self-quoting.
David Edmondson [Tue, 20 Dec 2011 08:01:46 +0000 (08:01 +0000)]
emacs: Add `notmuch-jump-to-recent-buffer'.
From a Carl Worth idea: add a function which will select the most
recently used notmuch buffer (search, show or hello). If no recent
buffer is found, run `notmuch'.
It is expected that the user will global bind this command to a key
sequence.
Dmitry Kurochkin [Sun, 18 Dec 2011 00:21:21 +0000 (04:21 +0400)]
emacs: do not call `notmuch-hello-mode' on update
`notmuch-hello' should call `notmuch-hello-mode' function only when
run for the first time. But before the change, `notmuch-hello' used
`kill-all-local-variables' to remove editable widgets fields. This
caused the major mode to be reset, and `notmuch-hello-mode' to be
called every time.
The patch manually deletes all editable widget fields and removes
`kill-all-local-variables' call.
Dmitry Kurochkin [Sun, 18 Dec 2011 00:21:20 +0000 (04:21 +0400)]
test: add broken test for `notmuch-hello-mode-hook' called during update
Test that `notmuch-hello-mode-hook' is not called during
`notmuch-hello' buffer updates. The test is currently broken.
Dmitry Kurochkin [Sun, 18 Dec 2011 00:21:19 +0000 (04:21 +0400)]
test: add test for `notmuch-hello-mode-hook'
Test that `notmuch-hello-mode-hook' is called once when
`notmuch-hello' function is called.
Dmitry Kurochkin [Sun, 18 Dec 2011 00:21:18 +0000 (04:21 +0400)]
test: add `notmuch-hello-mode-hook-counter'
Add `notmuch-hello-mode-hook-counter' hook to count how many times
`notmuch-hello-mode-hook' was called. The counter function increments
`notmuch-hello-mode-hook-counter' variable value if it is bount,
otherwise it does nothing.
Aaron Ecay [Sat, 17 Dec 2011 15:24:47 +0000 (10:24 -0500)]
Add an argument to notmuch-mua-mail
From the emacs changelog:
** `compose-mail' now accepts an optional 8th arg, RETURN-ACTION, and
passes it to the mail user agent function. This argument specifies an
action for returning to the caller after finishing with the mail.
This is currently used by Rmail to delete a mail window.
Under Emacs 24, notmuch breaks when this argument is passed to it by a
function in another part of Emacs. One example of a functon that does
this is report-emacs-bug -- so notmuch users cannot file emacs bug
reports!
This patch also adds a &rest argument to the arg-list of this function,
to future-proof against such changes. This is adapted from the approach
taken by message-mail, a similar function built into emacs.
This patch was originally submitted by richardmurri@gmail.com on Aug. 1:
id:"877h6x6oor.fsf@veracitynetworks.com"
David Bremner [Sun, 18 Dec 2011 03:16:51 +0000 (23:16 -0400)]
build-system: use a shell variable for TMPFILE in debian-snapshot
Aaron Ecay points out in
id:"
1324136185-4509-1-git-send-email-aaronecay@gmail.com" that the
mktemp in
debian-snapshot: TMPFILE := $(shell mktemp)
Is being evaluated for every target. As best I can tell, this is
because make is evaluating the right hand side, even though it is not
doing the assignment.
Of course, it isn't quite as nice to edit with the line continuations,
but it is ideomatic make.
David Bremner [Tue, 13 Dec 2011 19:56:47 +0000 (15:56 -0400)]
test: optionally print subtest number
The idea is that $test_count could be used in tests to label
intermediate files. The output enabled by this patch (and --debug)
helps figure out which OUTPUT.nn file belongs to which test in case
several subtests write to OUTPUT.$test_count
Thomas Jost [Thu, 15 Dec 2011 19:41:58 +0000 (20:41 +0100)]
Fix build with binutils-2.22
binutils-2.22 changes the behaviour of ld by defaulting to
--no-copy-dt-needed-entries, which means that required objects/libs are not
"indirectly" linked through intermediate objects/libs anymore. As a consequence,
when using binutils-2.22, building symbol-test fails with the following error:
/usr/bin/ld: test/symbol-test.o: undefined reference to symbol
'std::basic_string<char, std::char_traits<char>, std::allocator<char>
>::~basic_string()@@GLIBCXX_3.4'
/usr/bin/ld: note: 'std::basic_string<char, std::char_traits<char>,
std::allocator<char> >::~basic_string()@@GLIBCXX_3.4' is defined in DSO
/usr/lib/libstdc++.so.6 so try adding it to the linker command line
/usr/lib/libstdc++.so.6: could not read symbols: Invalid operation
An easy fix is to link using CXX instead of CC.
Aaron Ecay [Sat, 17 Dec 2011 15:40:49 +0000 (10:40 -0500)]
Ignore dynamic libraries on OS X.
Parallel to ignoring .so for linux.
Ivy Foster [Sat, 29 Oct 2011 16:35:04 +0000 (12:35 -0400)]
emacs: Add notmuch-hello-mode-hook
Functions called after entering `notmuch-hello-mode'
Daniel Schoepe [Fri, 8 Jul 2011 18:46:55 +0000 (20:46 +0200)]
emacs: Document notmuch-show-get-message-properties
Thomas Jost [Tue, 13 Dec 2011 17:32:10 +0000 (18:32 +0100)]
emacs: Add a face for crypto parts headers
Commit
cb841878 introduced new parts handlers for crypto parts, but also
hardcoded values for their headers face. This replaces these hardcoded values
with a customizable face.
David Bremner [Thu, 15 Dec 2011 12:00:08 +0000 (08:00 -0400)]
Revert "test: add emacs test for hiding a message following an HTML part"
This reverts commit
c6a3a768fef9f59f483af04f4418d350efc27968.
This test is unreliable, showing BROKEN in some environments and FIXED
in others. The confusion seems to outweigh the benefits, for now.
Conflicts:
test/emacs
Tomi Ollila [Tue, 13 Dec 2011 18:18:48 +0000 (20:18 +0200)]
notmuch: unref charset_filter to fix one memory leak
In my test case added g_object_unref(charset_filter) reduces memory
consumption over 90% when 'notmuch show --format=text "*"' is
executed (~11000 messages, RES ~330M -> ~25M).
Jani Nikula [Mon, 12 Dec 2011 20:50:04 +0000 (22:50 +0200)]
emacs: support "notmuch new" as a notmuch-poll-script
Support nil value for notmuch-poll-script to run "notmuch new" instead of
an external script, and make this the new default. "notmuch new" is run
using the configured notmuch-command.
This allows taking better advantage of the "notmuch new" hooks from emacs
without intermediate scripts.
Signed-off-by: Jani Nikula <jani@nikula.org>
Jameson Graef Rollins [Mon, 12 Dec 2011 01:21:09 +0000 (17:21 -0800)]
debian: add upstream-tag and fix debian-tag configs for git-buildpackage
Debian tags have been using '/', instead of '-' as a separator.
David Bremner [Tue, 13 Dec 2011 03:54:24 +0000 (23:54 -0400)]
command-line-arguments.[ch]: make arrays of keyword descriptors const
It seems like it should never be necessary to modify these arrays after
initialization.
David Bremner [Tue, 13 Dec 2011 02:25:48 +0000 (22:25 -0400)]
test: add arg-test to .gitignore
This should have been done when the binary was added, oops.
David Bremner [Mon, 12 Dec 2011 15:54:16 +0000 (11:54 -0400)]
build-system: clean $(libutil_modules) rather than listing them individually.
This matches the way the other 'Makefile.local's work.
David Bremner [Sat, 10 Dec 2011 16:35:14 +0000 (12:35 -0400)]
cli: factor out config handling code to get/set lists.
Two new internal routines are created _config_get_list and
_config_set_list; the notmuch_config_get_* functions that deal with
lists are simply wrappers for these functions.
Jani Nikula [Thu, 8 Dec 2011 22:48:31 +0000 (00:48 +0200)]
test: add tests for hooks
Signed-off-by: Jani Nikula <jani@nikula.org>
Jani Nikula [Thu, 8 Dec 2011 22:48:30 +0000 (00:48 +0200)]
cli: add support for pre and post notmuch new hooks
Run notmuch new pre and post hooks, named "pre-new" and "post-new", if
present in the notmuch hooks directory. The hooks will be run before and
after incorporating new messages to the database.
Typical use cases for pre-new and post-new hooks are fetching or delivering
new mail to the maildir, and custom tagging of the mail incorporated to the
database.
Also add command line option --no-hooks to notmuch new to bypass the hooks.
Signed-off-by: Jani Nikula <jani@nikula.org>
Jani Nikula [Thu, 8 Dec 2011 22:48:29 +0000 (00:48 +0200)]
cli: introduce the concept of user defined hooks
Add mechanism for running user defined hooks. Hooks are executables or
symlinks to executables stored under the new notmuch hooks directory,
<database-path>/.notmuch/hooks.
No hooks are introduced here, but adding support for a hook is now a simple
matter of calling the new notmuch_run_hook() function at an appropriate
location with the hook name.
Signed-off-by: Jani Nikula <jani@nikula.org>
Thomas Jost [Wed, 7 Dec 2011 09:46:18 +0000 (10:46 +0100)]
test: use python2 instead of python if available
Some distros (Arch Linux) ship Python as python2 and Python 3 as python.
Checking for python2 is necessary for the Python tests to work on these
platforms.
Thomas Jost [Wed, 7 Dec 2011 09:46:17 +0000 (10:46 +0100)]
test: add a function to run Python tests
The new test_python() function makes writing Python tests a little easier:
- it sets the environment variables as needed
- it redirects stdout to the OUTPUT file (like test_emacs()).
This commit also declares python as an external prereq.
The stdout redirection is required to avoid trouble when running commands like
"python 'script' | sort > OUTPUT": in such a case, any error due to a missing
external prereq would be "swallowed" by sort, resulting to a failed test instead
of a skipped one.
Tomi Ollila [Sat, 10 Dec 2011 10:18:54 +0000 (12:18 +0200)]
Release memory allocated by internet_address_list_parse_string()
g_object_unref() releases the memory of the InternetAddressList object
returned by internet_address_list_parse_string() -- when last (only)
reference is released, internet_address_list_finalize() will do cleanup.
Dmitry Kurochkin [Thu, 1 Dec 2011 22:02:46 +0000 (02:02 +0400)]
test: cleanup gdb external dependency in atomicity tests
Change atomicity tests to use the new external binary dependencies.
This simplifies the code and makes output consistent.
David Bremner [Sun, 4 Dec 2011 15:26:22 +0000 (11:26 -0400)]
notmuch-search: convert to command-line-arguments
The switch on format_sel is slightly clunky, but it doesn't seem worth
special casing argument processing for function pointers, when I think
the function pointer approach will be modified/abandoned.
David Bremner [Sun, 4 Dec 2011 02:10:50 +0000 (21:10 -0500)]
notmuch-restore: convert to command-line-arguments
The new argument handling is a bit more concise, and bit more
flexible. It allows the input file name to go before the --accumulate
option.
David Bremner [Fri, 2 Dec 2011 06:08:51 +0000 (22:08 -0800)]
notmuch-dump: convert to command-line-arguments
The output file is handled via positional arguments. There are
currently no "normal" options.
David Bremner [Wed, 7 Dec 2011 18:37:13 +0000 (14:37 -0400)]
test: tests for command-line-arguments.c
This was needed because no current notmuch code exercises the
NOTMUCH_OPT_STRING style arguments.
David Bremner [Thu, 1 Dec 2011 00:27:26 +0000 (16:27 -0800)]
command-line-arguments.[ch]: new argument parsing framework for notmuch.
As we noticed when Jani kindly converted things to getopt_long, much
of the work in argument parsing in notmuch is due to the the key-value
style arguments like --format=(raw|json|text).
The framework here provides positional arguments, simple switches,
and --key=value style arguments that can take a value being an integer,
a string, or one of a set of keywords.
pazz [Sat, 23 Jul 2011 09:54:04 +0000 (10:54 +0100)]
json: date_relative for threads
include the date_relative field in the
json formated output of notmuch search
pazz [Sat, 23 Jul 2011 09:54:03 +0000 (10:54 +0100)]
test: date_relative in notmuch search json output
expect the date_relative field for thread entries
in notmuch search's json output
note from Commiter: we don't have to worry about the date changing
because the date in question is more than 180 days old.
Dmitry Kurochkin [Tue, 29 Nov 2011 21:19:54 +0000 (01:19 +0400)]
emacs: do not call notmuch show for non-inlinable parts
Before the change, there was a workaround to avoid notmuch show calls
for parts with application/* Content-Type. But non-inlinable parts
are not limited to this Content-Type (e.g. mp3 files have audio/mpeg
Content-Type and are not inlinable). For such parts
`notmuch-show-insert-part-*/*' handler is called which unconditionally
fetches contents for all parts.
The patch moves content fetching from `notmuch-show-insert-part-*/*'
to `notmuch-show-mm-display-part-inline' function after MIME inlinable
checks are done to avoid useless notmuch show calls. The
application/* hack is no longer needed and removed.
Dmitry Kurochkin [Tue, 29 Nov 2011 21:19:53 +0000 (01:19 +0400)]
test: check that Emacs UI does not call notmuch for non-inlinable parts
The patch adds two new test cases:
* Do not call notmuch for non-inlinable application/mpeg parts
* Do not call notmuch for non-inlinable audio/mpeg parts
The application/mpeg test passes thanks to a workaround for
application/* Content-Types. The audio/mpeg is currently broken.
Dmitry Kurochkin [Tue, 29 Nov 2011 21:19:52 +0000 (01:19 +0400)]
test: add functions to count how much times notmuch was called
The patch adds two auxiliary functions and a variable:
notmuch_counter_reset
$notmuch_counter_command
notmuch_counter_value
They allow to count how many times notmuch binary is called.
notmuch_counter_reset() function generates a script that counts how
many times it is called and resets the counter to zero. The function
sets $notmuch_counter_command variable to the path to the generated
script that should be called instead of notmuch to do the counting.
The notmuch_counter_value() function returns the current counter
value.
Dmitry Kurochkin [Fri, 25 Nov 2011 22:23:31 +0000 (02:23 +0400)]
emacs: remove unused variable in `notmuch-show-insert-part-message/rfc822'
An obvious cleanup. I wonder why there was no warning about this
during compilation.
Dmitry Kurochkin [Fri, 25 Nov 2011 22:23:30 +0000 (02:23 +0400)]
emacs: remove some code duplication in notmuch-show
Add optional props argument to `notmuch-show-get-header'. Use it to
get headers in `notmuch-show-insert-part-multipart/signed' and
`notmuch-show-insert-part-multipart/encrypted'.
David Bremner [Tue, 29 Nov 2011 06:51:16 +0000 (22:51 -0800)]
test/symbol-hiding: compare exported symbols with existing one
We assume that any symbol starting with notmuch_ in lib/*.o should be
exported, and that only those symbols should be exported.
David Bremner [Tue, 29 Nov 2011 06:51:15 +0000 (22:51 -0800)]
test/symbol-hiding: add some whitespace between tests
This is in preparation for adding a third test to this file
David Bremner [Tue, 6 Dec 2011 23:39:33 +0000 (19:39 -0400)]
Merge branch 'release'
Conflicts:
NEWS
Conflicts resolved by inserting the 0.10.2 stanza before 0.11
Patrick Totzke [Tue, 6 Dec 2011 20:22:43 +0000 (20:22 +0000)]
fix format string in Message.__unicode__
Since
2b0116119160f2dc83, Message.__str__ doesn't
construct a hash containing the thread data before
constructing the formatstring. This changes the formatstring
to accept positional parameters instead of a hash.
David Bremner [Tue, 6 Dec 2011 15:20:57 +0000 (11:20 -0400)]
contrib/.gitattributes: remove
Now that licensing of notmuch-deliver has been harmonized with
notmuch, there is no reason not to export it.
Ali Polatel [Tue, 6 Dec 2011 15:06:30 +0000 (17:06 +0200)]
notmuch-deliver: GPL-3+
Ali Polatel [Tue, 6 Dec 2011 14:41:33 +0000 (16:41 +0200)]
notmuch-deliver: Import from maildrop-2.5.5
maildrop-2.5.5 is GPL-3.
No change in functionality, just a precaution before relicensing.
Tomi Ollila [Mon, 5 Dec 2011 11:39:32 +0000 (13:39 +0200)]
make release: remove LATEST-$(PACKAGE)-*
The tar file of particular package (notmuch in this case) is named
as $(PACKAGE)-$(VERSION).tar.gz. Therefore the best way to remove
previous link to LATEST is to remove all files beginning with
LATEST-$(PACKAGE)- and not relying how $(VERSION) string is constructed.
Tomi Ollila [Thu, 24 Nov 2011 20:41:01 +0000 (22:41 +0200)]
have LATEST-notmuch-<version>.tar.gz on releases web page
The notmuchmail/releases page used to have LATEST-notmuch-<version>
to link to the latest notmuch source tarball. This is confusing on
web page and on disk when the file has been downloaded. This change
looks a bit inconsistent with the 'rm' command just executed before.
$(TAR_FILE) is defined (currently) as $(PACKAGE)-$(VERSION).tar.gz;
as long as the prefix stays $(PACKAGE)-$(VERSION) and version begins
with a digit then this line is good in execution point of view.
David Bremner [Sat, 3 Dec 2011 22:05:08 +0000 (14:05 -0800)]
test: add test-binaries target
The goal here is to have a simple way of making sure all of the
binaries needed to run tests are available.
Sebastian Spaeth [Tue, 6 Dec 2011 12:36:48 +0000 (13:36 +0100)]
python: Remove stray debug comment
This slipped in wrongly in commit
71e0082eff (due to my fault).
Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
Thomas Jost [Tue, 6 Dec 2011 10:03:22 +0000 (11:03 +0100)]
python: use wrapped notmuch_*_t types instead of raw pointers
Now that types are checked correctly, we also need to make sure that all the
arguments actually are instances of these types. Otherwise the function calls
will fail and raise an exception similar to this one:
ctypes.ArgumentError: argument 3: <type 'exceptions.TypeError'>: expected
LP_LP_NotmuchMessageS instance instead of pointer to c_void_p
Patrick Totzke [Mon, 5 Dec 2011 20:45:27 +0000 (20:45 +0000)]
errors='ignore' when decode to unicode
Patrick Totzke [Mon, 5 Dec 2011 22:51:10 +0000 (22:51 +0000)]
use __unicode__ for string representation
Patrick Totzke [Mon, 5 Dec 2011 21:19:27 +0000 (21:19 +0000)]
clean up Thread.__str__
Sebastian Spaeth [Tue, 6 Dec 2011 11:38:52 +0000 (12:38 +0100)]
python: Return a STATUS value in tags_to_flags and flags_to_tags
We were not returning anything at all, which does not match the API
documentation. Fixed. Thanks to Patrick Totzke for the heads up.
Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
Patrick Totzke [Mon, 5 Dec 2011 21:12:34 +0000 (21:12 +0000)]
remove unused imports
Patrick Totzke [Mon, 5 Dec 2011 21:12:35 +0000 (21:12 +0000)]
fix sphinx compile-time warnings
no changes to the code, only makes compiling the docs smoother
as some rsT syntax errors were fixed
Patrick Totzke [Mon, 5 Dec 2011 21:12:33 +0000 (21:12 +0000)]
pep8 fixes
no changes to the code, only fixed stuff denounced by `pep8 *py`
David Bremner [Tue, 6 Dec 2011 03:06:50 +0000 (23:06 -0400)]
test/python: set LD_LIBRARY_PATH and PYTHONPATH to use local notmuch
Possibly this should be factored out into some kind of "run_python"
function.
David Bremner [Tue, 6 Dec 2011 02:27:08 +0000 (22:27 -0400)]
build system: allow decreasing debian versions for debian-snapshot
This allows the debian-snapshot to continue working between when
debian/changelog is updated and when the release is tagged.
David Bremner [Mon, 5 Dec 2011 02:14:12 +0000 (22:14 -0400)]
NEWS: add news for 0.10.2
David Bremner [Tue, 6 Dec 2011 02:03:38 +0000 (22:03 -0400)]
fixup for changelog
David Bremner [Mon, 5 Dec 2011 02:08:40 +0000 (22:08 -0400)]
debian/changelog: add new changelog stanza for 0.10.2
David Bremner [Mon, 5 Dec 2011 02:03:04 +0000 (22:03 -0400)]
version: bump for bugfix release 0.10.2
David Bremner [Mon, 5 Dec 2011 01:50:08 +0000 (21:50 -0400)]
test: add tests for python bindings
We start modestly, with a (slightly modified) test case from Kazuo
Teramoto. Originally it just made sure the bindings didn't crash; here
we check that by comparing the output with that of notmuch search.
David Bremner [Sun, 4 Dec 2011 19:20:39 +0000 (15:20 -0400)]
lib: call g_type_init from notmuch_database_open
We want to make sure g_type_init is called before any GObject
functionality is used.
David Bremner [Sat, 3 Dec 2011 22:32:18 +0000 (14:32 -0800)]
notmuch-dump.c: whitespace cleanup
Justus Winter [Sun, 9 Oct 2011 22:12:54 +0000 (00:12 +0200)]
python: annotate all calls into libnotmuch with types
Add type information to the ctypes._FuncPtr wrappers and
use the wrapper classes instead of c_void_p for pointers
to notmuch_*_t.
This enables the ctypes library to type check parameters
being handed to functions from the notmuch library.
Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
Justus Winter [Sun, 9 Oct 2011 22:12:53 +0000 (00:12 +0200)]
python: add classes to wrap all notmuch_*_t types
Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
Dmitry Kurochkin [Mon, 28 Nov 2011 22:41:07 +0000 (02:41 +0400)]
test: fix error messages for missing binary dependencies
The fake missing binary functions check if the binary has already be
added to the diagnostic message to avoid duplicates. Unfortunately,
this check was buggy because the message string does not have the
trailing space.
Dmitry Kurochkin [Mon, 28 Nov 2011 22:41:06 +0000 (02:41 +0400)]
test: fix spurious output from missing external binaries functions
The grep(1) command used in the fake binary functions was missing the
quiet option.
Dmitry Kurochkin [Mon, 28 Nov 2011 22:41:05 +0000 (02:41 +0400)]
test: add missing escape backslash in test_declare_external_prereq()
Dmitry Kurochkin [Mon, 28 Nov 2011 22:41:04 +0000 (02:41 +0400)]
test: fix test_require_external_prereq()
test_missing_external_prereq_${binary}_ variable indicates that the
binary is missing. It must be set in test_declare_external_prereq()
outside of the fake $binary() function.
Chris Gray [Tue, 29 Nov 2011 17:58:31 +0000 (10:58 -0700)]
emacs: Use notmuch-command variable in process-lines.
The process-lines function calls the notmuch binary. The location of
the binary may have been customized by the user, so it is better to
use the customized location rather than allowing the process-lines
function to search the user's PATH for the binary.
Thomas Schwinge [Sun, 27 Nov 2011 18:40:53 +0000 (13:40 -0500)]
dump: Don't sort the output by message id.
Asking xapian to sort the messages for us causes suboptimal IO patterns. This
would be useful, if we only wanted the first few results, but since we want
everything anyway, this is pessimization.
On 2011-10-29, a measurement on a 372981 messages instance showed that wall
time can be reduced from 28 minutes (sorted by Message-ID) to 15 minutes
(unsorted).
Timings on 189605 messages:
$ time notmuch.old dump
19.48user 5.83system 12:10.42elapsed 3%CPU (0avgtext+0avgdata 110656maxresident)k
3629584inputs+22720outputs (33major+7073minor)pagefaults 0swaps
$ echo 3 > /proc/sys/vm/drop_caches
$ time notmuch.new
14.89user 1.20system 3:23.58elapsed 7%CPU (0avgtext+0avgdata 46032maxresident)k
1256264inputs+22464outputs (43major+1990minor)pagefaults 0swaps
Austin Clements [Wed, 9 Nov 2011 13:44:35 +0000 (08:44 -0500)]
tag: Automatically limit to messages whose tags will actually change.
This optimizes the user's tagging query to exclude messages that won't
be affected by the tagging operation, saving computation and IO for
redundant tagging operations.
For example,
notmuch tag +notmuch to:notmuch@notmuchmail.org
will now use the query
( to:notmuch@notmuchmail.org ) and (not tag:"notmuch")
In the past, we've often suggested that people do this exact
transformation by hand for slow tagging operations. This makes that
unnecessary.
Dmitry Kurochkin [Sun, 27 Nov 2011 18:36:19 +0000 (22:36 +0400)]
test: fix "Stashing in notmuch-search" test when emacs is not available
If emacs is not available, test_expect_equal would be called with only
one argument. The patch fixes this by quoting the (possibly empty)
$(cat OUTPUT) argument.
Dmitry Kurochkin [Sun, 27 Nov 2011 18:36:18 +0000 (22:36 +0400)]
test: check if emacs is available in the beginning of test_emacs
Unfortunately, this is needed to avoid the emacs waiting loop.
Dmitry Kurochkin [Sun, 27 Nov 2011 18:36:17 +0000 (22:36 +0400)]
test: add function to explicitly check for external dependencies
Useful when binary is called indirectly (e.g. from emacs).
Dmitry Kurochkin [Sun, 27 Nov 2011 18:36:16 +0000 (22:36 +0400)]
test: declare external dependencies for the tests
That are: dtach(1), emacs(1), emacsclient(1), gdb(1) and gpg(1).
Dmitry Kurochkin [Sun, 27 Nov 2011 18:36:15 +0000 (22:36 +0400)]
test: skip all subtests if external dependencies are missing during init
Some tests (e.g. crypto) do a common initialization required for all
subtests. The patch adds a check for missing external dependencies
during this initialization. If any prerequisites are missing, all
subtests are skipped.
The check is run on the first call of test_reset_state_ function, so
no changes for the tests are needed.
Dmitry Kurochkin [Sun, 27 Nov 2011 18:36:14 +0000 (22:36 +0400)]
test: fix "skipping test" verbose output
Dmitry Kurochkin [Sun, 27 Nov 2011 18:36:13 +0000 (22:36 +0400)]
test: add support for external executable dependencies
There is existing support for general prerequisites in the test suite.
But it is not very convenient to use: every test case has to keep
track for it's dependencies and they have to be explicitly listed.
The patch aims to add better support for a particular type of external
dependencies: external executables. The main idea is to replace
missing external binaries with shell functions that have the same
name. These functions always fail and keep track of missing
dependencies for a subtest. The result reporting functions later can
check that an external binaries are missing and correctly report SKIP
result instead of FAIL. The primary benefit is that the test cases do
not need to declare their dependencies or be changed in any way.
Dmitry Kurochkin [Thu, 17 Nov 2011 13:05:56 +0000 (17:05 +0400)]
test: add test state reset to test_expect_* functions that did not have it
Dmitry Kurochkin [Thu, 17 Nov 2011 13:05:55 +0000 (17:05 +0400)]
test: set EMACS_SERVER variable only after dtach(1) was successfully started
Otherwise, we can set the EMACS_SERVER and return with an error. And
subsequent calls to test_emacs would assume that emacs server is running.
Dmitry Kurochkin [Thu, 17 Nov 2011 13:05:54 +0000 (17:05 +0400)]
test: move subtest variables reset into a dedicated function
Currently, there is only one such variable test_subtest_known_broken_.
But more will be added in the future.
Amadeusz Żołnowski [Sat, 26 Nov 2011 21:14:20 +0000 (22:14 +0100)]
Build symbol-test with make instead of hardcoding in symbol-hiding.
If symbol-test is built in symbol-hiding with hardcoded g++ invokation,
it's not so easy to pass $(srcdir) which is required to find notmuch.h
when srcdir and builddir are separate directories.
David Bremner [Sun, 27 Nov 2011 05:15:20 +0000 (21:15 -0800)]
Merge branch 'release'
David Bremner [Sat, 26 Nov 2011 17:55:07 +0000 (09:55 -0800)]
build system: clean up object files in ./test and ./util
Amadeusz Żołnowski [Fri, 25 Nov 2011 15:34:48 +0000 (16:34 +0100)]
Whitespaces cleanup.