notmuch/test/T051-new-renames.sh
David Bremner 063f5e9862 test: test folder renames
In [1] Mark Walters reported a problem with messages being removed
from the database when the parent directory was renamed. Jani Nikula
proposed [2] these tests but observed

   This test is not suitable for merging since it's not deterministic.

After applying Jani's patch [3], the tests now pass deterministically,
and could usefully act as regression tests.

[1]: id:87siray6th.fsf@qmul.ac.uk
[2]: id:1393191650-28333-1-git-send-email-jani@nikula.org
[3]: id:1441445731-4362-2-git-send-email-jani@nikula.org
2021-12-26 12:30:25 -04:00

40 lines
1 KiB
Bash
Executable file

#!/usr/bin/env bash
test_description='"notmuch new" with directory renames'
. $(dirname "$0")/test-lib.sh || exit 1
for loop in {1..10}; do
rm -rf ${MAIL_DIR}
for i in {1..10}; do
generate_message '[dir]=foo' '[subject]="Message foo $i"'
done
for i in {1..10}; do
generate_message '[dir]=bar' '[subject]="Message bar $i"'
done
test_begin_subtest "Index the messages, round $loop"
output=$(NOTMUCH_NEW)
test_expect_equal "$output" "Added 20 new messages to the database."
all_files=$(notmuch search --output=files \*)
count_foo=$(notmuch count folder:foo)
test_begin_subtest "Rename folder"
mv ${MAIL_DIR}/foo ${MAIL_DIR}/baz
output=$(NOTMUCH_NEW)
test_expect_equal "$output" "No new mail. Detected $count_foo file renames."
test_begin_subtest "Rename folder back"
mv ${MAIL_DIR}/baz ${MAIL_DIR}/foo
output=$(NOTMUCH_NEW)
test_expect_equal "$output" "No new mail. Detected $count_foo file renames."
test_begin_subtest "Files remain the same"
output=$(notmuch search --output=files \*)
test_expect_equal "$output" "$all_files"
done
test_done