X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;ds=sidebyside;f=test%2FT590-thread-breakage.sh;h=aeb82cf4e3f300b10dfc80b9333fc18f433ce6ac;hb=HEAD;hp=6e4031af46bbcee14b90d5c782ca4d62fef2ba30;hpb=e366bb222722d6a635b736e875b760d82b46d1f5;p=notmuch diff --git a/test/T590-thread-breakage.sh b/test/T590-thread-breakage.sh deleted file mode 100755 index 6e4031af..00000000 --- a/test/T590-thread-breakage.sh +++ /dev/null @@ -1,124 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2016 Daniel Kahn Gillmor -# - -test_description='thread breakage during reindexing - -notmuch uses ghost documents to track messages we have seen references -to but have never seen. Regardless of the order of delivery, message -deletion, and reindexing, the list of ghost messages for a given -stored corpus should not vary, so that threads can be reassmebled -cleanly. - -In practice, we accept a small amount of variation (and therefore -traffic pattern metadata leakage to be stored in the index) for the -sake of efficiency. - -This test also embeds some subtests to ensure that indexing actually -works properly and attempted fixes to threading issues do not break -the expected contents of the index.' - -. ./test-lib.sh || exit 1 - -message_a() { - mkdir -p ${MAIL_DIR}/cur - cat > ${MAIL_DIR}/cur/a < -From: Alice -To: Bob -Date: Thu, 31 Mar 2016 20:10:00 -0400 - -This is the first message in the thread. -Apple -EOF -} - -message_b() { - mkdir -p ${MAIL_DIR}/cur - cat > ${MAIL_DIR}/cur/b < -In-Reply-To: -References: -From: Bob -To: Alice -Date: Thu, 31 Mar 2016 20:15:00 -0400 - -This is the second message in the thread. -Banana -EOF -} - - -test_content_count() { - test_begin_subtest "${3:-looking for $2 instance of '$1'}" - count=$(notmuch count --output=threads "$1") - test_expect_equal "$count" "$2" -} - -test_thread_count() { - test_begin_subtest "${2:-Expecting $1 thread(s)}" - count=$(notmuch count --output=threads) - test_expect_equal "$count" "$1" -} - -test_ghost_count() { - test_begin_subtest "${2:-Expecting $1 ghosts(s)}" - ghosts=$(../ghost-report ${MAIL_DIR}/.notmuch/xapian) - test_expect_equal "$ghosts" "$1" -} - -notmuch new >/dev/null - -test_thread_count 0 'There should be no threads initially' -test_ghost_count 0 'There should be no ghosts initially' - -message_a -notmuch new >/dev/null -test_thread_count 1 'One message in: one thread' -test_content_count apple 1 -test_content_count banana 0 -test_ghost_count 0 - -message_b -notmuch new >/dev/null -test_thread_count 1 'Second message in the same thread: one thread' -test_content_count apple 1 -test_content_count banana 1 -test_ghost_count 0 - -rm -f ${MAIL_DIR}/cur/a -notmuch new >/dev/null -test_thread_count 1 'First message removed: still only one thread' -test_content_count apple 0 -test_content_count banana 1 -test_ghost_count 1 'should be one ghost after first message removed' - -message_a -notmuch new >/dev/null -test_thread_count 1 'First message reappears: should return to the same thread' -test_content_count apple 1 -test_content_count banana 1 -test_ghost_count 0 - -rm -f ${MAIL_DIR}/cur/b -notmuch new >/dev/null -test_thread_count 1 'Removing second message: still only one thread' -test_content_count apple 1 -test_content_count banana 0 -test_begin_subtest 'No ghosts should remain after deletion of second message' -# this is known to fail; we are leaking ghost messages deliberately -test_subtest_known_broken -ghosts=$(../ghost-report ${MAIL_DIR}/.notmuch/xapian) -test_expect_equal "$ghosts" "0" - -rm -f ${MAIL_DIR}/cur/a -notmuch new >/dev/null -test_thread_count 0 'All messages gone: no threads' -test_content_count apple 0 -test_content_count banana 0 -test_ghost_count 0 'No ghosts should remain after full thread deletion' - -test_done