mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-21 18:38:08 +01:00
test: drop upgrade from v1 tests
These are less crucial since we stopped generating new database versions and relied primarily on features. They also rely on a pre-generated v1 database which happens to be chert format. This backend is not supported by Xapian 1.5. Also drop the tool gen-testdb.sh, which is currently broken, due to changes in the testing infrastructure.
This commit is contained in:
parent
b90d852a2f
commit
ee897cab8b
8 changed files with 1 additions and 298 deletions
|
@ -20,7 +20,6 @@ addons:
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- ./configure
|
- ./configure
|
||||||
- make download-test-databases
|
|
||||||
- make test
|
- make test
|
||||||
|
|
||||||
notifications:
|
notifications:
|
||||||
|
|
2
configure
vendored
2
configure
vendored
|
@ -48,7 +48,7 @@ case $PWD in ( *["$IFS"]* )
|
||||||
esac
|
esac
|
||||||
|
|
||||||
subdirs="util compat lib parse-time-string completion doc emacs"
|
subdirs="util compat lib parse-time-string completion doc emacs"
|
||||||
subdirs="${subdirs} performance-test test test/test-databases"
|
subdirs="${subdirs} performance-test test"
|
||||||
subdirs="${subdirs} bindings"
|
subdirs="${subdirs} bindings"
|
||||||
|
|
||||||
# For a non-srcdir configure invocation (such as ../configure), create
|
# For a non-srcdir configure invocation (such as ../configure), create
|
||||||
|
|
|
@ -1,131 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
#
|
|
||||||
# NAME
|
|
||||||
# gen-testdb.sh - generate test databases
|
|
||||||
#
|
|
||||||
# SYNOPSIS
|
|
||||||
# gen-testdb.sh -v NOTMUCH-VERSION [-c CORPUS-PATH] [-s TAR-SUFFIX]
|
|
||||||
#
|
|
||||||
# DESCRIPTION
|
|
||||||
# Generate a tarball containing the specified test corpus and
|
|
||||||
# the corresponding notmuch database, indexed using a specific
|
|
||||||
# version of notmuch, resulting in a specific version of the
|
|
||||||
# database.
|
|
||||||
#
|
|
||||||
# The specific version of notmuch will be built on the fly.
|
|
||||||
# Therefore the script must be run within a git repository to be
|
|
||||||
# able to build the old versions of notmuch.
|
|
||||||
#
|
|
||||||
# This script reuses the test infrastructure, and the script
|
|
||||||
# must be run from within the test directory.
|
|
||||||
#
|
|
||||||
# The output tarballs, named database-<TAR-SUFFIX>.tar.gz, are
|
|
||||||
# placed in the test/test-databases directory.
|
|
||||||
#
|
|
||||||
# OPTIONS
|
|
||||||
# -v NOTMUCH-VERSION
|
|
||||||
# Notmuch version in terms of a git tag or commit to use
|
|
||||||
# for generating the database. Required.
|
|
||||||
#
|
|
||||||
# -c CORPUS-PATH
|
|
||||||
# Path to a corpus to use for generating the
|
|
||||||
# database. Due to CWD changes within the test
|
|
||||||
# infrastructure, use absolute paths. Defaults to the
|
|
||||||
# test corpus.
|
|
||||||
#
|
|
||||||
# -s TAR-SUFFIX
|
|
||||||
# Suffix for the tarball basename. Empty by default.
|
|
||||||
#
|
|
||||||
# EXAMPLE
|
|
||||||
#
|
|
||||||
# Generate a database indexed with notmuch 0.17. Use the default
|
|
||||||
# test corpus. Name the tarball database-v1.tar.gz to reflect
|
|
||||||
# the fact that notmuch 0.17 used database version 1.
|
|
||||||
#
|
|
||||||
# $ cd test
|
|
||||||
# $ ../devel/gen-testdb.sh -v 0.17 -s v1
|
|
||||||
#
|
|
||||||
# CAVEATS
|
|
||||||
# Test infrastructure options won't work.
|
|
||||||
#
|
|
||||||
# Any existing databases with the same name will be overwritten.
|
|
||||||
#
|
|
||||||
# It may not be possible to build old versions of notmuch with
|
|
||||||
# the set of dependencies that satisfy building the current
|
|
||||||
# version of notmuch.
|
|
||||||
#
|
|
||||||
# AUTHOR
|
|
||||||
# Jani Nikula <jani@nikula.org>
|
|
||||||
#
|
|
||||||
# LICENSE
|
|
||||||
# Same as notmuch test infrastructure (GPLv2+).
|
|
||||||
#
|
|
||||||
|
|
||||||
test_description="database generation abusing test infrastructure"
|
|
||||||
|
|
||||||
# immediate exit on subtest failure; see test_failure_ in test-lib.sh
|
|
||||||
immediate=t
|
|
||||||
|
|
||||||
VERSION=
|
|
||||||
CORPUS=
|
|
||||||
SUFFIX=
|
|
||||||
|
|
||||||
while getopts v:c:s: opt; do
|
|
||||||
case "$opt" in
|
|
||||||
v) VERSION="$OPTARG";;
|
|
||||||
c) CORPUS="$OPTARG";;
|
|
||||||
s) SUFFIX="-$OPTARG";;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
shift `expr $OPTIND - 1`
|
|
||||||
|
|
||||||
. ./test-lib.sh || exit 1
|
|
||||||
|
|
||||||
SHORT_CORPUS=$(basename ${CORPUS:-database})
|
|
||||||
DBNAME=${SHORT_CORPUS}${SUFFIX}
|
|
||||||
TARBALLNAME=${DBNAME}.tar.xz
|
|
||||||
|
|
||||||
CORPUS=${CORPUS:-${TEST_DIRECTORY}/corpus}
|
|
||||||
|
|
||||||
test_expect_code 0 "notmuch version specified on the command line" \
|
|
||||||
"test -n ${VERSION}"
|
|
||||||
|
|
||||||
test_expect_code 0 "the specified version ${VERSION} refers to a commit" \
|
|
||||||
"git show ${VERSION} >/dev/null 2>&1"
|
|
||||||
|
|
||||||
BUILD_DIR="notmuch-${VERSION}"
|
|
||||||
test_expect_code 0 "generate snapshot of notmuch version ${VERSION}" \
|
|
||||||
"git -C $TEST_DIRECTORY/.. archive --prefix=${BUILD_DIR}/ --format=tar ${VERSION} | tar x"
|
|
||||||
|
|
||||||
# force version string
|
|
||||||
git describe --match '[0-9.]*' ${VERSION} > ${BUILD_DIR}/version
|
|
||||||
|
|
||||||
test_expect_code 0 "configure and build notmuch version ${VERSION}" \
|
|
||||||
"make -C ${BUILD_DIR}"
|
|
||||||
|
|
||||||
# use the newly built notmuch
|
|
||||||
export PATH=./${BUILD_DIR}:$PATH
|
|
||||||
|
|
||||||
test_begin_subtest "verify the newly built notmuch version"
|
|
||||||
test_expect_equal "`notmuch --version`" "notmuch `cat ${BUILD_DIR}/version`"
|
|
||||||
|
|
||||||
# replace the existing mails, if any, with the specified corpus
|
|
||||||
rm -rf ${MAIL_DIR}
|
|
||||||
cp -a ${CORPUS} ${MAIL_DIR}
|
|
||||||
|
|
||||||
test_expect_code 0 "index the corpus" \
|
|
||||||
"notmuch new"
|
|
||||||
|
|
||||||
# wrap the resulting mail store and database in a tarball
|
|
||||||
|
|
||||||
cp -a ${MAIL_DIR} ${TMP_DIRECTORY}/${DBNAME}
|
|
||||||
tar Jcf ${TMP_DIRECTORY}/${TARBALLNAME} -C ${TMP_DIRECTORY} ${DBNAME}
|
|
||||||
mkdir -p ${TEST_DIRECTORY}/test-databases
|
|
||||||
cp -a ${TMP_DIRECTORY}/${TARBALLNAME} ${TEST_DIRECTORY}/test-databases
|
|
||||||
test_expect_code 0 "create the output tarball ${TARBALLNAME}" \
|
|
||||||
"test -f ${TEST_DIRECTORY}/test-databases/${TARBALLNAME}"
|
|
||||||
|
|
||||||
# generate a checksum file
|
|
||||||
test_expect_code 0 "compute checksum" \
|
|
||||||
"(cd ${TEST_DIRECTORY}/test-databases/ && sha256sum ${TARBALLNAME} > ${TARBALLNAME}.sha256)"
|
|
||||||
test_done
|
|
|
@ -1,136 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
test_description="database upgrade"
|
|
||||||
|
|
||||||
. $(dirname "$0")/test-lib.sh || exit 1
|
|
||||||
|
|
||||||
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} - fetch with 'make download-test-databases'"]=t
|
|
||||||
fi
|
|
||||||
|
|
||||||
test_begin_subtest "database checksum"
|
|
||||||
test_expect_success \
|
|
||||||
'( cd $TEST_DIRECTORY/test-databases &&
|
|
||||||
sha256sum --quiet --check --status ${dbtarball}.sha256 )'
|
|
||||||
|
|
||||||
tar xf $TEST_DIRECTORY/test-databases/${dbtarball} -C ${MAIL_DIR} --strip-components=1
|
|
||||||
|
|
||||||
test_begin_subtest "folder: search does not work with old database version"
|
|
||||||
output=$(notmuch search folder:foo)
|
|
||||||
test_expect_equal "$output" ""
|
|
||||||
|
|
||||||
test_begin_subtest "path: search does not work with old database version"
|
|
||||||
output=$(notmuch search path:foo)
|
|
||||||
test_expect_equal "$output" ""
|
|
||||||
|
|
||||||
test_begin_subtest "pre upgrade dump"
|
|
||||||
test_expect_success 'notmuch dump | sort > pre-upgrade-dump'
|
|
||||||
|
|
||||||
test_begin_subtest "database upgrade from format version 1"
|
|
||||||
output=$(notmuch new | sed -e 's/^Backing up tags to .*$/Backing up tags to FILENAME/')
|
|
||||||
test_expect_equal "$output" "\
|
|
||||||
Welcome to a new version of notmuch! Your database will now be upgraded.
|
|
||||||
This process is safe to interrupt.
|
|
||||||
Backing up tags to FILENAME
|
|
||||||
Your notmuch database has now been upgraded.
|
|
||||||
No new mail."
|
|
||||||
|
|
||||||
test_begin_subtest "tag backup matches pre-upgrade dump"
|
|
||||||
gunzip -c ${MAIL_DIR}/.notmuch/dump-*.gz | sort > backup-dump
|
|
||||||
test_expect_equal_file pre-upgrade-dump backup-dump
|
|
||||||
|
|
||||||
test_begin_subtest "folder: no longer matches in the middle of path"
|
|
||||||
output=$(notmuch search folder:baz)
|
|
||||||
test_expect_equal "$output" ""
|
|
||||||
|
|
||||||
test_begin_subtest "folder: search"
|
|
||||||
output=$(notmuch search --output=files folder:foo | notmuch_search_files_sanitize | sort)
|
|
||||||
test_expect_equal "$output" "MAIL_DIR/foo/06:2,
|
|
||||||
MAIL_DIR/foo/cur/07:2,
|
|
||||||
MAIL_DIR/foo/cur/08:2,
|
|
||||||
MAIL_DIR/foo/new/03:2,
|
|
||||||
MAIL_DIR/foo/new/09:2,
|
|
||||||
MAIL_DIR/foo/new/10:2,"
|
|
||||||
|
|
||||||
test_begin_subtest "top level folder: search"
|
|
||||||
output=$(notmuch search --output=files folder:'""' | notmuch_search_files_sanitize | sort)
|
|
||||||
# bar/18:2, is a duplicate of cur/51:2,
|
|
||||||
test_expect_equal "$output" "MAIL_DIR/01:2,
|
|
||||||
MAIL_DIR/02:2,
|
|
||||||
MAIL_DIR/bar/18:2,
|
|
||||||
MAIL_DIR/cur/29:2,
|
|
||||||
MAIL_DIR/cur/30:2,
|
|
||||||
MAIL_DIR/cur/31:2,
|
|
||||||
MAIL_DIR/cur/32:2,
|
|
||||||
MAIL_DIR/cur/33:2,
|
|
||||||
MAIL_DIR/cur/34:2,
|
|
||||||
MAIL_DIR/cur/35:2,
|
|
||||||
MAIL_DIR/cur/36:2,
|
|
||||||
MAIL_DIR/cur/37:2,
|
|
||||||
MAIL_DIR/cur/38:2,
|
|
||||||
MAIL_DIR/cur/39:2,
|
|
||||||
MAIL_DIR/cur/40:2,
|
|
||||||
MAIL_DIR/cur/41:2,
|
|
||||||
MAIL_DIR/cur/42:2,
|
|
||||||
MAIL_DIR/cur/43:2,
|
|
||||||
MAIL_DIR/cur/44:2,
|
|
||||||
MAIL_DIR/cur/45:2,
|
|
||||||
MAIL_DIR/cur/46:2,
|
|
||||||
MAIL_DIR/cur/47:2,
|
|
||||||
MAIL_DIR/cur/48:2,
|
|
||||||
MAIL_DIR/cur/49:2,
|
|
||||||
MAIL_DIR/cur/50:2,
|
|
||||||
MAIL_DIR/cur/51:2,
|
|
||||||
MAIL_DIR/cur/52:2,
|
|
||||||
MAIL_DIR/cur/53:2,
|
|
||||||
MAIL_DIR/new/04:2,"
|
|
||||||
|
|
||||||
test_begin_subtest "path: search"
|
|
||||||
output=$(notmuch search --output=files path:"bar" | notmuch_search_files_sanitize | sort)
|
|
||||||
# cur/51:2, is a duplicate of bar/18:2,
|
|
||||||
test_expect_equal "$output" "MAIL_DIR/bar/17:2,
|
|
||||||
MAIL_DIR/bar/18:2,
|
|
||||||
MAIL_DIR/cur/51:2,"
|
|
||||||
|
|
||||||
test_begin_subtest "top level path: search"
|
|
||||||
output=$(notmuch search --output=files path:'""' | notmuch_search_files_sanitize | sort)
|
|
||||||
test_expect_equal "$output" "MAIL_DIR/01:2,
|
|
||||||
MAIL_DIR/02:2,"
|
|
||||||
|
|
||||||
test_begin_subtest "recursive path: search"
|
|
||||||
output=$(notmuch search --output=files path:"bar/**" | notmuch_search_files_sanitize | sort)
|
|
||||||
# cur/51:2, is a duplicate of bar/18:2,
|
|
||||||
test_expect_equal "$output" "MAIL_DIR/bar/17:2,
|
|
||||||
MAIL_DIR/bar/18:2,
|
|
||||||
MAIL_DIR/bar/baz/05:2,
|
|
||||||
MAIL_DIR/bar/baz/23:2,
|
|
||||||
MAIL_DIR/bar/baz/24:2,
|
|
||||||
MAIL_DIR/bar/baz/cur/25:2,
|
|
||||||
MAIL_DIR/bar/baz/cur/26:2,
|
|
||||||
MAIL_DIR/bar/baz/new/27:2,
|
|
||||||
MAIL_DIR/bar/baz/new/28:2,
|
|
||||||
MAIL_DIR/bar/cur/19:2,
|
|
||||||
MAIL_DIR/bar/cur/20:2,
|
|
||||||
MAIL_DIR/bar/new/21:2,
|
|
||||||
MAIL_DIR/bar/new/22:2,
|
|
||||||
MAIL_DIR/cur/51:2,"
|
|
||||||
|
|
||||||
test_begin_subtest "body: same as unprefixed before reindex"
|
|
||||||
notmuch search --output=messages body:close > OUTPUT
|
|
||||||
notmuch search --output=messages close > EXPECTED
|
|
||||||
test_expect_equal_file EXPECTED OUTPUT
|
|
||||||
|
|
||||||
test_begin_subtest "body: subset of unprefixed after reindex"
|
|
||||||
notmuch reindex '*'
|
|
||||||
notmuch search --output=messages body:close | sort > BODY
|
|
||||||
notmuch search --output=messages close | sort > UNPREFIXED
|
|
||||||
diff -e UNPREFIXED BODY | cut -c2- > OUTPUT
|
|
||||||
cat <<EOF > EXPECTED
|
|
||||||
d
|
|
||||||
d
|
|
||||||
EOF
|
|
||||||
test_expect_equal_file EXPECTED OUTPUT
|
|
||||||
|
|
||||||
test_done
|
|
1
test/test-databases/.gitignore
vendored
1
test/test-databases/.gitignore
vendored
|
@ -1 +0,0 @@
|
||||||
/*.tar.xz
|
|
|
@ -1,7 +0,0 @@
|
||||||
# See Makefile.local for the list of files to be compiled in this
|
|
||||||
# directory.
|
|
||||||
all:
|
|
||||||
$(MAKE) -C ../.. all
|
|
||||||
|
|
||||||
.DEFAULT:
|
|
||||||
$(MAKE) -C ../.. $@
|
|
|
@ -1,20 +0,0 @@
|
||||||
# -*- makefile -*-
|
|
||||||
|
|
||||||
TEST_DATABASE_MIRROR=https://notmuchmail.org/releases/test-databases
|
|
||||||
|
|
||||||
dir := test/test-databases
|
|
||||||
|
|
||||||
test_databases := $(dir)/database-v1.tar.xz
|
|
||||||
|
|
||||||
%.tar.xz:
|
|
||||||
@exec 1>&2 ;\
|
|
||||||
if command -v wget >/dev/null ;\
|
|
||||||
then set -x; wget -nv -O $@ ${TEST_DATABASE_MIRROR}/$(notdir $@) ;\
|
|
||||||
elif command -v curl >/dev/null ;\
|
|
||||||
then set -x; curl -L -s -o $@ ${TEST_DATABASE_MIRROR}/$(notdir $@) ;\
|
|
||||||
else echo Cannot fetch databases, no wget nor curl available; exit 1 ;\
|
|
||||||
fi
|
|
||||||
|
|
||||||
download-test-databases: ${test_databases}
|
|
||||||
|
|
||||||
DATACLEAN := $(DATACLEAN) ${test_databases}
|
|
|
@ -1 +0,0 @@
|
||||||
4299e051b10e1fa7b33ea2862790a09ebfe96859681804e5251e130f800e69d2 database-v1.tar.xz
|
|
Loading…
Reference in a new issue