notmuch/performance-test/Makefile.local
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

42 lines
1 KiB
Makefile

# -*- makefile -*-
dir := performance-test
include $(dir)/version.sh
TIME_TEST_SCRIPT := ${dir}/notmuch-time-test
MEMORY_TEST_SCRIPT := ${dir}/notmuch-memory-test
CORPUS_NAME := notmuch-email-corpus-$(PERFTEST_VERSION).tar.xz
TXZFILE := ${dir}/download/${CORPUS_NAME}
SIGFILE := ${TXZFILE}.asc
DEFAULT_URL := http://notmuchmail.org/releases/${CORPUS_NAME}
perf-test: time-test memory-test
time-test: setup-perf-test all
@echo
$(TIME_TEST_SCRIPT) $(OPTIONS)
memory-test: setup-perf-test all
@echo
$(MEMORY_TEST_SCRIPT) $(OPTIONS)
.PHONY: download-corpus setup-perf-test
# Note that this intentionally does not depend on download-corpus.
setup-perf-test: $(TXZFILE)
gpg --verify $(SIGFILE)
$(TXZFILE):
@printf "\nPlease download ${TXZFILE} using:\n\n"
@printf "\t%% make download-corpus\n\n"
@echo or see http://notmuchmail.org/corpus for download locations
@echo
@false
download-corpus:
wget -O ${TXZFILE} ${DEFAULT_URL}
CLEAN := $(CLEAN) $(dir)/tmp.* $(dir)/log.* $(dir)/corpus $(dir)/notmuch.cache.*