]> git.notmuchmail.org Git - notmuch/blobdiff - test/T530-upgrade.sh
cli/{show,reply}: skip over legacy-display parts
[notmuch] / test / T530-upgrade.sh
index 7faf03d335099d92c6a4d4942441904e019ad4b0..2124dde28a04ade0cb8c680f63d6f1a8bec8821e 100755 (executable)
@@ -1,7 +1,7 @@
 #!/usr/bin/env bash
 test_description="database upgrade"
 
-. ./test-lib.sh || exit 1
+. $(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,7 +25,8 @@ test_begin_subtest "path: search does not work with old database version"
 output=$(notmuch search path:foo)
 test_expect_equal "$output" ""
 
-test_expect_success 'pre upgrade dump' 'notmuch dump | sort > pre-upgrade-dump'
+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/')
@@ -116,25 +117,20 @@ MAIL_DIR/bar/new/21:2,
 MAIL_DIR/bar/new/22:2,
 MAIL_DIR/cur/51:2,"
 
-# Ghost messages are difficult to test since they're nearly invisible.
-# However, if the upgrade works correctly, the ghost message should
-# retain the right thread ID even if all of the original messages in
-# the thread are deleted.  That's what we test.  This won't detect if
-# the upgrade just plain didn't happen, but it should detect if
-# something went wrong.
-test_begin_subtest "ghost message retains thread ID"
-# Upgrade database
-notmuch new
-# Get thread ID of real message
-thread=$(notmuch search --output=threads id:4EFC743A.3060609@april.org)
-# Delete all real messages in that thread
-rm $(notmuch search --output=files $thread)
-notmuch new
-# "Deliver" ghost message
-add_message '[subject]=Ghost' '[id]=4EFC3931.6030007@april.org'
-# If the ghost upgrade worked, the new message should be attached to
-# the existing thread ID.
-nthread=$(notmuch search --output=threads id:4EFC3931.6030007@april.org)
-test_expect_equal "$thread" "$nthread"
+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