mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-25 12:28:09 +01:00
test: add database upgrade test from format version 1 to 2
Test the upgrade from probabilistic to boolean folder: terms, and addition of path: terms. The test depends on the pre-built test corpus and database tarball and checksum file being in place. If it's not, the test is skipped. The mechanism to fetch the test database will be added later. At the time of writing, a working test database and checksum file is available at http://notmuchmail.org/releases/test-databases/ It has been noted that some non-GNU environments make lack sha256sum. We leave this portability issue for a followup patch.
This commit is contained in:
parent
f93fab3683
commit
50345d1263
1 changed files with 111 additions and 0 deletions
111
test/T530-upgrade.sh
Executable file
111
test/T530-upgrade.sh
Executable file
|
@ -0,0 +1,111 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
test_description="database upgrade"
|
||||||
|
|
||||||
|
. ./test-lib.sh
|
||||||
|
|
||||||
|
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
|
||||||
|
fi
|
||||||
|
|
||||||
|
test_expect_success \
|
||||||
|
'database checksum' \
|
||||||
|
'( 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 "database upgrade from format version 1"
|
||||||
|
output=$(notmuch new)
|
||||||
|
test_expect_equal "$output" "\
|
||||||
|
Welcome to a new version of notmuch! Your database will now be upgraded.
|
||||||
|
Your notmuch database has now been upgraded to database format version 2.
|
||||||
|
No new mail."
|
||||||
|
|
||||||
|
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_done
|
Loading…
Reference in a new issue