mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-12-26 19:34:51 +01:00
ba9f9efc9a
When the NOTMUCH variable was originally invented it was used as an explicit path to the notmuch binary being tested. Today, the test suite sets the PATH variable instead, so the NOTMUCH variable always has a value of simply "notmuch". We simplifying that by using the constant value rather than the continual variable reference.
165 lines
4 KiB
Bash
Executable file
165 lines
4 KiB
Bash
Executable file
#!/bin/bash
|
|
test_description='"notmuch new" in several variations'
|
|
. ./test-lib.sh
|
|
|
|
test_begin_subtest "No new messages"
|
|
output=$(NOTMUCH_NEW)
|
|
test_expect_equal "$output" "No new mail."
|
|
|
|
|
|
test_begin_subtest "Single new message"
|
|
generate_message
|
|
output=$(NOTMUCH_NEW)
|
|
test_expect_equal "$output" "Added 1 new message to the database."
|
|
|
|
|
|
test_begin_subtest "Multiple new messages"
|
|
generate_message
|
|
generate_message
|
|
output=$(NOTMUCH_NEW)
|
|
test_expect_equal "$output" "Added 2 new messages to the database."
|
|
|
|
|
|
test_begin_subtest "No new messages (non-empty DB)"
|
|
output=$(NOTMUCH_NEW)
|
|
test_expect_equal "$output" "No new mail."
|
|
|
|
|
|
test_begin_subtest "New directories"
|
|
rm -rf "${MAIL_DIR}"/* "${MAIL_DIR}"/.notmuch
|
|
mkdir "${MAIL_DIR}"/def
|
|
mkdir "${MAIL_DIR}"/ghi
|
|
generate_message [dir]=def
|
|
|
|
output=$(NOTMUCH_NEW)
|
|
test_expect_equal "$output" "Added 1 new message to the database."
|
|
|
|
|
|
test_begin_subtest "Alternate inode order"
|
|
|
|
rm -rf "${MAIL_DIR}"/.notmuch
|
|
mv "${MAIL_DIR}"/ghi "${MAIL_DIR}"/abc
|
|
rm "${MAIL_DIR}"/def/*
|
|
generate_message [dir]=abc
|
|
|
|
output=$(NOTMUCH_NEW)
|
|
test_expect_equal "$output" "Added 1 new message to the database."
|
|
|
|
|
|
test_begin_subtest "Message moved in"
|
|
rm -rf "${MAIL_DIR}"/* "${MAIL_DIR}"/.notmuch
|
|
generate_message
|
|
tmp_msg_filename=tmp/"$gen_msg_filename"
|
|
mkdir -p "$(dirname "$tmp_msg_filename")"
|
|
mv "$gen_msg_filename" "$tmp_msg_filename"
|
|
increment_mtime "${MAIL_DIR}"
|
|
notmuch new > /dev/null
|
|
mv "$tmp_msg_filename" "$gen_msg_filename"
|
|
increment_mtime "${MAIL_DIR}"
|
|
output=$(NOTMUCH_NEW)
|
|
test_expect_equal "$output" "Added 1 new message to the database."
|
|
|
|
|
|
test_begin_subtest "Renamed message"
|
|
|
|
generate_message
|
|
notmuch new > /dev/null
|
|
mv "$gen_msg_filename" "${gen_msg_filename}"-renamed
|
|
increment_mtime "${MAIL_DIR}"
|
|
output=$(NOTMUCH_NEW)
|
|
test_expect_equal "$output" "No new mail. Detected 1 file rename."
|
|
|
|
|
|
test_begin_subtest "Deleted message"
|
|
|
|
rm "${gen_msg_filename}"-renamed
|
|
increment_mtime "${MAIL_DIR}"
|
|
output=$(NOTMUCH_NEW)
|
|
test_expect_equal "$output" "No new mail. Removed 1 message."
|
|
|
|
|
|
test_begin_subtest "Renamed directory"
|
|
|
|
generate_message [dir]=dir
|
|
generate_message [dir]=dir
|
|
generate_message [dir]=dir
|
|
|
|
notmuch new > /dev/null
|
|
|
|
mv "${MAIL_DIR}"/dir "${MAIL_DIR}"/dir-renamed
|
|
increment_mtime "${MAIL_DIR}"
|
|
|
|
output=$(NOTMUCH_NEW)
|
|
test_expect_equal "$output" "No new mail. Detected 3 file renames."
|
|
|
|
|
|
test_begin_subtest "Deleted directory"
|
|
|
|
rm -rf "${MAIL_DIR}"/dir-renamed
|
|
increment_mtime "${MAIL_DIR}"
|
|
|
|
output=$(NOTMUCH_NEW)
|
|
test_expect_equal "$output" "No new mail. Removed 3 messages."
|
|
|
|
|
|
test_begin_subtest "New directory (at end of list)"
|
|
|
|
generate_message [dir]=zzz
|
|
generate_message [dir]=zzz
|
|
generate_message [dir]=zzz
|
|
|
|
output=$(NOTMUCH_NEW)
|
|
test_expect_equal "$output" "Added 3 new messages to the database."
|
|
|
|
|
|
test_begin_subtest "Deleted directory (end of list)"
|
|
|
|
rm -rf "${MAIL_DIR}"/zzz
|
|
increment_mtime "${MAIL_DIR}"
|
|
|
|
output=$(NOTMUCH_NEW)
|
|
test_expect_equal "$output" "No new mail. Removed 3 messages."
|
|
|
|
|
|
test_begin_subtest "New symlink to directory"
|
|
|
|
rm -rf "${MAIL_DIR}"/.notmuch
|
|
mv "${MAIL_DIR}" "$PWD"/actual_maildir
|
|
|
|
mkdir "${MAIL_DIR}"
|
|
ln -s "$PWD"/actual_maildir "${MAIL_DIR}"/symlink
|
|
|
|
output=$(NOTMUCH_NEW)
|
|
test_expect_equal "$output" "Added 1 new message to the database."
|
|
|
|
|
|
test_begin_subtest "New symlink to a file"
|
|
generate_message
|
|
external_msg_filename="$PWD"/external/"$(basename "$gen_msg_filename")"
|
|
mkdir -p "$(dirname "$external_msg_filename")"
|
|
mv "$gen_msg_filename" "$external_msg_filename"
|
|
ln -s "$external_msg_filename" "$gen_msg_filename"
|
|
increment_mtime "${MAIL_DIR}"
|
|
output=$(NOTMUCH_NEW)
|
|
test_expect_equal "$output" "Added 1 new message to the database."
|
|
|
|
|
|
test_begin_subtest "New two-level directory"
|
|
|
|
generate_message [dir]=two/levels
|
|
generate_message [dir]=two/levels
|
|
generate_message [dir]=two/levels
|
|
|
|
output=$(NOTMUCH_NEW)
|
|
test_expect_equal "$output" "Added 3 new messages to the database."
|
|
|
|
|
|
test_begin_subtest "Deleted two-level directory"
|
|
|
|
rm -rf "${MAIL_DIR}"/two
|
|
increment_mtime "${MAIL_DIR}"
|
|
|
|
output=$(NOTMUCH_NEW)
|
|
test_expect_equal "$output" "No new mail. Removed 3 messages."
|
|
|
|
test_done
|