Commit graph

28 commits

Author SHA1 Message Date
David Bremner
e7a7943862 build: don't overwrite DISTCLEAN in performance-test
This might have worked once for some fixed order of including
makefiles, but it is clearly wrong now.
2014-05-28 09:51:40 -03:00
David Bremner
8fcc3260a9 perf-test: use command line arguments for directories
It seems that between version 1.26 and 1.27 of gnu tar, directories to
be extracted read with --files-from are no longer recursively extacted.
This patch puts them on the command line instead.
2014-03-14 21:47:43 -03:00
David Bremner
2de8ce9b37 perf-test: bump version to 0.4, use manifest files
The new revision of the performance test includes manifests for each corpus,
so update the support library to use these manifests at the same time.
2013-12-10 04:00:38 +08:00
Austin Clements
abedb55a45 perf: Clean corpus and caches in distclean, not clean
Previously, we cleaned the downloaded performance corpus and the
cached indexes on 'make clean'.  This seems heavy-handed, since these
take a long time to download, unpack, and index.  They also aren't
make targets to begin with.  Move cleaning these to 'make distclean'.
This isn't exactly the right meaning of "distclean", but it's closer.
2013-10-25 21:24:43 -03:00
Jani Nikula
2cbd68de92 build: fix out-of-tree builds
Support for out-of-tree builds was added in
commit 3e4a9d60a9
Author: Carl Worth <cworth@cworth.org>
Date:   Wed Mar 9 15:02:42 2011 -0800

    build: Add support for non-source-directory builds.

and broken in
commit 7beeb8c88a
Author: David Bremner <bremner@debian.org>
Date:   Sat Nov 17 12:28:15 2012 -0400

    test: initial performance testing infrastructure

Fix the build breakage.

Out-of-tree 'make test' has been broken since earlier than the above,
and remains broken, as does out-of-tree perf test, but at least the
build now works.
2013-05-26 18:49:04 -03:00
David Bremner
e1cc5159b0 perf-test: add notmuch-memory-test
Somehow this file was not added to the patch set which split the tests
into time and memory tests. Take advantage of the the "new" way of
running tests to avoid listing the explicitly.
2013-05-15 22:23:29 -03:00
David Bremner
e9cdff74cc perf-test: run all appropriately named time tests
This avoids hassle with manually adding every test to the master list.
2013-05-15 22:23:29 -03:00
David Bremner
0eab376658 perf-test: rename time tests to have .sh suffix
This will simplify notmuch time tests
2013-05-15 22:23:29 -03:00
David Bremner
23e2154cae perf-test: rename memory tests
The common suffix will help running them all automatically.
2013-05-15 22:23:29 -03:00
David Bremner
8d05dcfffe perf-test: initial support for talloc leak report in memory tests
As with the valgrind logs, we print a (very) brief summary and leave
the log for inspection.
2012-12-30 21:12:11 -04:00
David Bremner
e233f6dfde perf-test: add memory leak test for dump restore
In id:87vcc2q5n2.fsf@nikula.org, Jani points out a memory leak in the
current version of the sup restore code. Among other things, this test
is intended to verify a fix for that leak.
2012-12-25 08:49:24 -04:00
David Bremner
098ef4af4d perf-test: initial version of memory test infrastructure.
The idea is run some code under valgrind --leak-check=full and report
a summary, leaving the user to peruse the log file if they want.

We go to some lengths to preserve the log files from accidental
overwriting; the full corpus takes about 3 hours to run under valgrind
on my machine.

The naming of the log directories may be slightly controversial; in
the unlikely event of two runs in less than a second, the log will be
overwritten. A previous version with mktemp+timestamp was dismissed as
overkill; just mktemp alone does not sort nicely.

One new test is included, to check notmuch new for memory leaks.
2012-12-25 08:49:24 -04:00
David Bremner
047cd7a595 perf-test: rename current tests as "time tests"
This is almost entirely renaming files, except for updating a few
references to those file names, and changing the makefile target.

A new set of memory tests will be run separately because they take
much longer.
2012-12-25 08:49:24 -04:00
David Bremner
f43b23f8e0 perf-test: remove redundant "initial notmuch new"
The initial notmuch-new and caching are now done automatically by
time_start
2012-12-25 08:49:24 -04:00
David Bremner
327f30a8f3 perf-test: use nmbug tags in dump-restore tests
This makes the tag set a bit less trivial.

Note that if you use the small corpus, this is not so interesting (and
is also a bit noisy) since the messages will not be found. In the
future this could be checked for.

Conflicts:
	performance-test/01-dump-restore
2012-12-15 08:30:13 -04:00
David Bremner
51b0f8ff33 perf-test: split basic into 00-new, 01-dump-restore, and 02-tag
We use the new "time_start" function to restore the database from cache
if possible.
2012-12-15 08:29:08 -04:00
David Bremner
5c35791d7c perf-test: unpack tags.
There is only one set of tags, independant of the size of message
corpus chosen.
2012-12-15 08:17:58 -04:00
David Bremner
5f8e376912 perf-test: bump corpus version to 0.3
The new version ships with some tags, and an updated archive of the
notmuch mailing list.
2012-12-15 08:17:58 -04:00
David Bremner
d7ba84dfad perf-test: update README
Describe new argument parsing and mention cache handling routines.
2012-12-15 08:17:58 -04:00
David Bremner
ceaf5ca6c0 perf-test: add caching of xapian database
The caching and uncaching seem to be necessarily manual, as timing the
initial notmuch new is one of our goals with this suite.
2012-12-15 08:17:58 -04:00
David Bremner
74a883562b perf-test: cache unpacked corpus
Unpacking is not really the expensive step (compared to the initial
notmuch new), but this is a pre-requisite to caching the database.
2012-12-15 08:17:57 -04:00
David Bremner
925ebd1fde perf-test: optionally print description for each group of tests
Output from tests is indented slightly in the same style as the
correctness tests.
2012-12-15 08:17:57 -04:00
David Bremner
a3137c61e1 perf-test: add corpus size to output, compact I/O stats
Austin suggested a while ago that the corpus size be printed in the
header. In the end it seems the corpus will be fixed per test script,
so this suggestion indeed makes sense.

The tabbing was wrapping on my usual 80 column terminal, so I joined
the input and output columns together.
2012-12-14 22:23:55 -04:00
David Bremner
e7c661d31a perf-test: add argument parsing for performance tests
This patch just sets (non-exported) variables. The variable $debug is
already used, and $corpus_size will be used in following commits.
2012-12-14 22:23:55 -04:00
David Bremner
e52597016f perf-test: propagate non-zero returns from /usr/bin/time
Unlike in the correctness tests, the most common cause of non-zero
return seems to be the user interrupting, so killing the run seems
like the friendly thing to do.
2012-12-14 22:23:54 -04:00
David Bremner
a4eabfd1b7 performance-test: add units to In and Out
Austin Read enough Fine Manuals to figure out this is in multiples of
512 bytes.
2012-11-29 09:28:46 -04:00
David Bremner
80639761b5 performance-test/README: update instructions for fetching corpus.
It turns out not everybody on the planet has my gpg key.
2012-11-29 09:28:03 -04:00
David Bremner
7beeb8c88a test: initial performance testing infrastructure
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-26 08:39:21 -04:00