X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=test%2FT530-upgrade.sh;h=2124dde28a04ade0cb8c680f63d6f1a8bec8821e;hp=67bbf319a1b7b271212fa6e0d7b74794d293ac07;hb=c61e22d5cb9a7e5b03f9fcdb9911b4b4a641af2b;hpb=8413582b6edc859285d68c9f7ad83236788567c0 diff --git a/test/T530-upgrade.sh b/test/T530-upgrade.sh index 67bbf319..2124dde2 100755 --- a/test/T530-upgrade.sh +++ b/test/T530-upgrade.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash test_description="database upgrade" -. ./test-lib.sh +. $(dirname "$0")/test-lib.sh || exit 1 dbtarball=database-v1.tar.xz @@ -10,8 +10,8 @@ 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 \ - 'database checksum' \ '( cd $TEST_DIRECTORY/test-databases && sha256sum --quiet --check --status ${dbtarball}.sha256 )' @@ -25,13 +25,22 @@ 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) +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. -Your notmuch database has now been upgraded to database format version 2. +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" "" @@ -108,4 +117,20 @@ 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 < EXPECTED +d +d +EOF +test_expect_equal_file EXPECTED OUTPUT + test_done