mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-21 10:28:09 +01:00
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
This commit is contained in:
parent
02d8ff376d
commit
063f5e9862
1 changed files with 40 additions and 0 deletions
40
test/T051-new-renames.sh
Executable file
40
test/T051-new-renames.sh
Executable file
|
@ -0,0 +1,40 @@
|
|||
#!/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
|
Loading…
Reference in a new issue