aboutsummaryrefslogtreecommitdiff
path: root/performance-test
AgeCommit message (Collapse)Author
2025-08-11cli/git-remote: add export commandDavid Bremner
Two (sub)features are stubbed out in this initial implementation: deleting messages (as opposed to tags), and missing messages. There are two corresponding tests marked as broken in T860-git-remote.sh. A third test passes with the stub, which is maybe not ideal, but at least it acts as a regression test.
2025-08-11cli/git-remote: add import commandDavid Bremner
The output in default.import is based on a modified version of Felipe's git-remote-nm with Blake2 hashing replaced by SHA1 (for portability). This enable fetch/pull/clone, so test that as well.
2024-04-05perf-test/tag: add maildir sync testsDavid Bremner
Today someone asked me the (reasonable) question of how much performance impact there is from synching tags to maildir flags. It turns out it is noticeable, about a 50% overhead compared to non-synched tags (according to these tests). In practice I don't know if it's a big problem for users, since I don't know what fraction of tagging operations involve "special" tags.
2023-07-09perf-test: update corpus signatureDavid Bremner
In the decade (!) since this corpus was last updated, the keyserver network is essentially dead, and I have migrated gpg keys. Bump the version number as a clean way of switching signatures. Also update the instructions to suggest using "--locate-external-key" to download the public key. By default this uses WKD, which is now supported for my UID.
2022-07-16perf-test: add tests notmuch-gitDavid Bremner
The main focus of these initial tests is the (currently unacceptably slow) checkout performance.
2022-07-14perf-test/emacs: test showing longish threadsDavid Bremner
This particular thread takes about 100 times longer to display in emacs than on the command line. The parameter notmuch-show-max-text-part-size exists, but is currently ineffective for this task because it only hides attachments, not part 0. In future commits, the parameter notmuch-show-{depth,height}-limit will trigger a similar kind of hiding for bodies as n-s-m-text-part-size already does for attachments.
2022-02-25perf-test: emacs taggingDavid Bremner
Time tag operations, to see if it is worthwhile keeping both the batch and the non-batch calls to notmuch tag.
2022-02-25perf-test: allow running test_emacs from performance test suite.David Bremner
test_require_external prereq has to move to test-lib-common.sh, and the new shell functions print_emacs_header and time_emacs are provided. The somewhat indirect way of printing the output is to avoid the extra "" present on string values from emacsclient.
2022-02-25test: split variable settings to their own fileDavid Bremner
This allows sharing more variable settings between the (correctness) tests and the performance-tests. Unfortunately it seems a bit tricky to move settings to test-lib-common.sh, as that is sourced late in test-lib.sh, and moving it earlier breaks things.
2021-08-05perf-test: fix for verboseFelipe Contreras
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
2021-07-18perf-test: add ruby testFelipe Contreras
Simply list the message-id of all the messages in a loop 100 times. Suggested-by: David Bremner <david@tethera.net> Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
2021-05-23perf-test: add test for reindexing after removal/renaming msgsDavid Bremner
At this point it is a bit tricky to measure the performance increase from the new message deletion code, since the same commit (9ad19e4) that improved the performance also seems to have fixed a bug with an uncaught Xapian exception triggered by this test.
2021-05-19perf-test/T00-new: fix backup creation.David Bremner
"xargs tar cf backup.tar < $manifest" recreates the tar file with each "batch" execed by xargs. In general this results in only a fraction of the desired files being backed up.
2021-04-28perf-test: add option to run perfDavid Bremner
Although the generation of perf data is not as slow as valgrind, it seems simplest to re-use the machinery already there to save the logs in a timestamped subdirectory.
2021-04-18perf-tests: add test for removing files.David Bremner
Without the proposed fix for deletion performance [1], this test is probably unreasonably slow compared to others at the same small/medium/large scale. [1]: id:20210414021627.1236560-3-david@tethera.net
2020-08-09emacs: Use makefile-gmake-mode in Makefile*sJonas Bernoulli
Use `makefile-gmake-mode' instead of `makefile-mode' because the former also highlights ifdef et al. while the latter does not. "./Makefile.global" and one "Makefile.local" failed to specify any major mode at all but doing so is necessary because Emacs does not automatically figure out that these are Makefiles (of any flavor).
2019-06-07perf-tests: #!/bin/bash -> #!/usr/bin/env bashWilliam Casarin
I couldn't run the performance tests on my machines due to a hardcoded bash path. Use env for finding bash in weird systems like NixOS. Signed-off-by: William Casarin <jb55@jb55.com>
2019-04-05performance-tests: tests for renamed/copied files in notmuch newDavid Bremner
Several people have observed that this is surprisingly slow, and we have a proposal to add tagging into this code path, so we want to make sure it doesn't imply too much of a performance hit.
2019-03-31performance-test: fix copy-paste error in test descriptionDavid Bremner
2018-05-07perf-test: add simple test for thread subqueriesDavid Bremner
This is not a particularly sensible query, but thread:{date:2010} is a good way to generate fairly large intermediate queries.
2017-12-04test: unbreak performance testsDavid Bremner
In 8e7fb88237aedea22 Jani replaced the use of $(pwd -P) to find the TEST_DIRECTORY in order to better support out of tree builds. Unfortunately the performance-tests need a different value for the variable and were thus broken. This commit splits out the setting of this variable for the two sets of tests. Performance tests still don't work out of tree, because the handling of the downloaded corpus needs to be updated.
2017-10-20perf-test: use source and build paths in perf-test-lib.shJani Nikula
Make a distinction between source and build directories.
2017-10-20perf-test: use $(dirname "$0") for sourcing perf-test-lib.shJani Nikula
Don't assume the tests are always run from within the source tree.
2017-08-20perf-test: add memory test for notmuch-insertDavid Bremner
In the future it might be worthwhile selecting corpus messages to insert, but that seems a bit overcomplicated for now
2017-08-20perf-test: renumber testsDavid Bremner
One test per number so ordering is clear.
2017-08-18Use rooted paths in .gitignore filesVladimir Panteleev
A leading / in paths in a .gitignore file matches the beginning of the path, meaning that for patterns without slashes, git will match files only in the current directory as opposed to in any subdirectory. Prefix relevant paths with / in .gitignore files, to prevent accidentally ignoring files in subdirectories and possibly slightly improve the performance of "git status".
2017-08-01add "notmuch reindex" subcommandDaniel Kahn Gillmor
This new subcommand takes a set of search terms, and re-indexes the list of matching messages.
2017-05-30perf-test: add memory test for replyDavid Bremner
Looking at the code for notmuch-reply, there seems to be several gmime related memory leaks. This test is supposed to help eliminate those.
2017-03-18perf-test/mem: add simple memory tests for notmuch searchDavid Bremner
Just copy and replace from the show tests. Currently these show no major leaks.
2017-03-18perf-test: add simple memory tests for notmuch-showDavid Bremner
These are probably too slow to run with the full corpus
2017-03-18perf-test: use 'eval' in memory_runDavid Bremner
This allows the use of redirection in the tests
2016-06-05Use https instead of http where possibleDaniel Kahn Gillmor
Many of the external links found in the notmuch source can be resolved using https instead of http. This changeset addresses as many as i could find, without touching the e-mail corpus or expected outputs found in tests.
2016-05-19test: copyright information updatesTomi Ollila
Files in test directories had only copyright of a single individual, of which code was adapted here as a base of the test system. Since then many Notmuch Developers have contributed to the test system, which is now acknowledged with a constant string in some of the test files. The README file in test directory instructed new files contain a copyright notice, but that has never been done (and it is also not needed). To simplify things a bit (and lessen confusion) this instruction is now removed. As a side enchangement, all of the 3 entries in the whole source tree cd'ing to `dirname` of "$0" now uses syntax cd "$(dirname "$0")". This makes these particular lines work when current working directory is e.g. /c/Program Files/notmuch/test/. (Probably it would fail elsewhere, though.)
2015-08-07test: make script exit (1) if it "fails" to source (.) a fileTomi Ollila
The files (test) scripts source (with builtin command `.`) provides information which the scripts depend, and without the `source` to succeed allowing script to continue may lead to dangerous situations (e.g. rm -rf "${undefined_variable}"/*). At the end of all source (.) lines construct ' || exit 1' was added; In our case the script script will exit if it cannot find (or read) the file to be sourced. Additionally script would also exits if the last command of the sourced file exited nonzero.
2015-05-31cli: change "setup" to "set up" where used as a verbJ. Lewis Muir
The word "setup" is a noun, not a verb. Change occurrences of "setup" where used as a verb to "set up".
2014-05-28build: add datacleanDavid Bremner
It turns out to be inconvenient to delete the downloaded datafiles with distclean, so I propose a new target which does that instead. The closest conventional target is 'maintainer-clean'; the difference here is that having the original source tarball is not enough to reconstruct these files.
2014-05-28build: don't overwrite DISTCLEAN in performance-testDavid Bremner
This might have worked once for some fixed order of including makefiles, but it is clearly wrong now.
2014-03-14perf-test: use command line arguments for directoriesDavid Bremner
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.
2013-12-10perf-test: bump version to 0.4, use manifest filesDavid Bremner
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-10-25perf: Clean corpus and caches in distclean, not cleanAustin Clements
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-05-26build: fix out-of-tree buildsJani Nikula
Support for out-of-tree builds was added in commit 3e4a9d60a9419621b08c647a306843d76c47c2cb 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 7beeb8c88a014ecbc53d8241f10683b3c4c16228 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-15perf-test: add notmuch-memory-testDavid Bremner
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-15perf-test: run all appropriately named time testsDavid Bremner
This avoids hassle with manually adding every test to the master list.
2013-05-15perf-test: rename time tests to have .sh suffixDavid Bremner
This will simplify notmuch time tests
2013-05-15perf-test: rename memory testsDavid Bremner
The common suffix will help running them all automatically.
2012-12-30perf-test: initial support for talloc leak report in memory testsDavid Bremner
As with the valgrind logs, we print a (very) brief summary and leave the log for inspection.
2012-12-25perf-test: add memory leak test for dump restoreDavid Bremner
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-25perf-test: initial version of memory test infrastructure.David Bremner
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-25perf-test: rename current tests as "time tests"David Bremner
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-25perf-test: remove redundant "initial notmuch new"David Bremner
The initial notmuch-new and caching are now done automatically by time_start