#!/usr/bin/env bash test_description='reindexing messages' . ./test-lib.sh || exit 1 add_email_corpus notmuch tag +usertag1 '*' notmuch search '*' | notmuch_search_sanitize > initial-threads notmuch search --output=messages '*' > initial-message-ids notmuch dump > initial-dump test_begin_subtest 'reindex preserves threads' notmuch reindex '*' notmuch search '*' | notmuch_search_sanitize > OUTPUT test_expect_equal_file initial-threads OUTPUT test_begin_subtest 'reindex after removing duplicate file preserves threads' # remove one copy sed 's,3/3(4),3/3,' < initial-threads > EXPECTED mv $MAIL_DIR/bar/18:2, duplicate-msg-1.eml notmuch reindex '*' notmuch search '*' | notmuch_search_sanitize > OUTPUT test_expect_equal_file EXPECTED OUTPUT test_begin_subtest 'reindex preserves message-ids' notmuch reindex '*' notmuch search --output=messages '*' > OUTPUT test_expect_equal_file initial-message-ids OUTPUT test_begin_subtest 'reindex preserves tags' notmuch reindex '*' notmuch dump > OUTPUT test_expect_equal_file initial-dump OUTPUT test_begin_subtest 'reindex moves a message between threads' notmuch search --output=threads id:87iqd9rn3l.fsf@vertex.dottedmag > EXPECTED # re-parent sed -i 's/1258471718-6781-1-git-send-email-dottedmag@dottedmag.net/87iqd9rn3l.fsf@vertex.dottedmag/' $MAIL_DIR/02:2,* notmuch reindex id:1258471718-6781-2-git-send-email-dottedmag@dottedmag.net notmuch search --output=threads id:1258471718-6781-2-git-send-email-dottedmag@dottedmag.net > OUTPUT test_expect_equal_file EXPECTED OUTPUT test_begin_subtest 'reindex detects removal of all files' notmuch search --output=messages not id:20091117232137.GA7669@griffis1.net> EXPECTED # remove both copies mv $MAIL_DIR/cur/51:2,* duplicate-message-2.eml notmuch reindex id:20091117232137.GA7669@griffis1.net notmuch search --output=messages '*' > OUTPUT test_expect_equal_file EXPECTED OUTPUT add_email_corpus lkml test_begin_subtest "reindex of lkml corpus preserves threads" notmuch search '*' | notmuch_search_sanitize > EXPECTED notmuch reindex '*' notmuch search '*' | notmuch_search_sanitize > OUTPUT test_expect_equal_file EXPECTED OUTPUT test_done