test: add machinery to download and verify databases

Note that it is intentional that the checksum file is not
downloaded. The intent is to check those into git.
This commit is contained in:
David Bremner 2014-03-01 16:12:44 -04:00
parent b660642101
commit 8413582b6e
5 changed files with 32 additions and 2 deletions

View file

@ -5,7 +5,8 @@ all:
# List all subdirectories here. Each contains its own Makefile.local.
# Use of '=', without '+=', seems to be required for out-of-tree
# builds to work.
subdirs = compat completion doc emacs lib parse-time-string performance-test util test
subdirs = compat completion doc emacs lib parse-time-string \
performance-test util test test/test-databases
# We make all targets depend on the Makefiles themselves.
global_deps = Makefile Makefile.config Makefile.local \

View file

@ -64,6 +64,14 @@ The following command-line options are available when running tests:
Pointing this argument at a tmpfs filesystem can improve the
speed of the test suite for some users.
Certain tests require precomputed databases to complete. You can fetch these
databases with
make download-test-databases
If you do not download the test databases, the relevant tests will be
skipped.
When invoking the test suite via "make test" any of the above options
can be specified as follows:

View file

@ -7,7 +7,7 @@ dbtarball=database-v1.tar.xz
# XXX: Accomplish the same with test lib helpers
if [ ! -e ${TEST_DIRECTORY}/test-databases/${dbtarball} ]; then
test_subtest_missing_external_prereq_["${dbtarball}"]=t
test_subtest_missing_external_prereq_["${dbtarball} - fetch with 'make download-test-databases'"]=t
fi
test_expect_success \

View file

@ -0,0 +1,7 @@
# See Makefile.local for the list of files to be compiled in this
# directory.
all:
$(MAKE) -C ../.. all
.DEFAULT:
$(MAKE) -C ../.. $@

View file

@ -0,0 +1,14 @@
# -*- makefile -*-
TEST_DATABASE_MIRROR=http://notmuchmail.org/releases/test-databases
dir := test/test-databases
test_databases := $(dir)/database-v1.tar.xz
%.tar.xz:
wget -nv -O $@ ${TEST_DATABASE_MIRROR}/$(notdir $@);
download-test-databases: ${test_databases}
DISTCLEAN := $(DISTCLEAN) ${test_databases}