From 7263aa9ec3f72bb65a491b2c64345ab5258b24ee Mon Sep 17 00:00:00 2001 From: Carl Worth Date: Fri, 17 Sep 2010 15:58:39 -0700 Subject: test: Rename all tests to get rid of the ugly numbers in file names. The numbers were meaningless, and they made it hard to find a file of interest. Instead, we get the ordering we want by adding an explicit list of tests to run to the notmuch-test script. --- test/new | 165 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100755 test/new (limited to 'test/new') diff --git a/test/new b/test/new new file mode 100755 index 00000000..4c6952fd --- /dev/null +++ b/test/new @@ -0,0 +1,165 @@ +#!/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 -- cgit v1.2.3