Return-Path: X-Original-To: notmuch@notmuchmail.org Delivered-To: notmuch@notmuchmail.org Received: from localhost (localhost [127.0.0.1]) by olra.theworths.org (Postfix) with ESMTP id D62B6431FBD for ; Wed, 3 Feb 2010 05:52:42 -0800 (PST) X-Virus-Scanned: Debian amavisd-new at olra.theworths.org X-Spam-Flag: NO X-Spam-Score: -2.317 X-Spam-Level: X-Spam-Status: No, score=-2.317 tagged_above=-999 required=5 tests=[AWL=0.282, BAYES_00=-2.599] autolearn=ham Received: from olra.theworths.org ([127.0.0.1]) by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Og351Xxaxyci for ; Wed, 3 Feb 2010 05:52:41 -0800 (PST) Received: from max.feld.cvut.cz (max.feld.cvut.cz [147.32.192.36]) by olra.theworths.org (Postfix) with ESMTP id 8B473431FAE for ; Wed, 3 Feb 2010 05:52:41 -0800 (PST) Received: from localhost (unknown [192.168.200.4]) by max.feld.cvut.cz (Postfix) with ESMTP id F367319F3372 for ; Wed, 3 Feb 2010 14:52:40 +0100 (CET) X-Virus-Scanned: IMAP AMAVIS Received: from max.feld.cvut.cz ([192.168.200.1]) by localhost (styx.feld.cvut.cz [192.168.200.4]) (amavisd-new, port 10044) with ESMTP id Z2maKPtCHOuc for ; Wed, 3 Feb 2010 14:52:35 +0100 (CET) Received: from imap.feld.cvut.cz (imap.feld.cvut.cz [147.32.192.34]) by max.feld.cvut.cz (Postfix) with ESMTP id AEF5819F35E3 for ; Wed, 3 Feb 2010 14:42:55 +0100 (CET) Received: from localhost.localdomain (k335-30.felk.cvut.cz [147.32.86.30]) (Authenticated sender: sojkam1) by imap.feld.cvut.cz (Postfix) with ESMTPSA id 8650AFA006 for ; Wed, 3 Feb 2010 14:42:55 +0100 (CET) From: Michal Sojka To: notmuch@notmuchmail.org Date: Wed, 3 Feb 2010 14:42:48 +0100 Message-Id: <1265204568-24018-4-git-send-email-sojkam1@fel.cvut.cz> X-Mailer: git-send-email 1.6.6 In-Reply-To: <1265204568-24018-1-git-send-email-sojkam1@fel.cvut.cz> References: <1265204568-24018-1-git-send-email-sojkam1@fel.cvut.cz> Subject: [notmuch] [PATCH 4/4] Content of the test script updated to the new framework X-BeenThere: notmuch@notmuchmail.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 03 Feb 2010 13:52:43 -0000 The changes are: - Removed helper functions which were moved to test-lib.sh - Replaced every echo with test_expect_success. - Replaced $NOTMUCH with notmuch (test-lib.sh sets $PATH appropriately) - Test commands chained with && (test-lib.sh doesn't use "set -e" in order to complete the test suite even if something fails) - Quoted ${MAIL_DIR} and other variables as they contains spaces - ${TEST_DIR} replaced by ./ To run the whole test suite run make To run only the converted test ./t0001-notmuch-new.sh To stop on the first error ./t0001-notmuch-new.sh -i then mail store and database can be inspected in "trash directory.t0001-notmuch-new" To see the output of tests ./t0001-notmuch-new.sh -v To not remove trash directory at the end: ./t0001-notmuch-new.sh -d Signed-off-by: Michal Sojka --- test/t0001-notmuch-new.sh | 310 ++++++++++++++++----------------------------- 1 files changed, 108 insertions(+), 202 deletions(-) diff --git a/test/t0001-notmuch-new.sh b/test/t0001-notmuch-new.sh index d7b85c0..52c64e9 100755 --- a/test/t0001-notmuch-new.sh +++ b/test/t0001-notmuch-new.sh @@ -1,220 +1,126 @@ #!/bin/sh -set -e -find_notmuch_binary () -{ - dir=$1 +test_description='Description of this test... +This test checks if command xyzzy does the right thing... +' +. ./test-lib.sh - while [ -n "$dir" ]; do - bin=$dir/notmuch - if [ -x $bin ]; then - echo $bin - return - fi - dir=$(dirname $dir) - if [ "$dir" = "/" ]; then - break - fi - done - - echo notmuch -} - -# Generate a new message in the mail directory, with -# a unique message ID and subject. -# -# The filename of the message generated is available as -# $gen_msg_filename -gen_msg_cnt=0 -gen_msg_filename="" -generate_message () -{ - gen_msg_cnt=$((gen_msg_cnt + 1)) - gen_msg_name=msg-$(printf "%03d" $gen_msg_cnt) - - if [ "$#" = "0" ]; then - gen_msg_filename="${MAIL_DIR}/$gen_msg_name" - else - gen_msg_filename="${MAIL_DIR}/$1/$gen_msg_name" - mkdir -p $(dirname $gen_msg_filename) - fi - -cat <$gen_msg_filename -From: Notmuch Test Suite -To: Notmuch Test Suite -Message-Id: -Subject: Test message ${gen_msg_filename} -Date: Tue, 05 Jan 2010 15:43:57 -0800 - -This is just a test message at ${gen_msg_filename} -EOF -} - -do_sleep () -{ - sleep 1 -} - -TEST_DIR=$(pwd)/test.$$ -MAIL_DIR=${TEST_DIR}/mail -export NOTMUCH_CONFIG=${TEST_DIR}/notmuch-config -NOTMUCH=$(find_notmuch_binary $(pwd)) - -rm -rf ${TEST_DIR} -mkdir ${TEST_DIR} -cd ${TEST_DIR} - -mkdir ${MAIL_DIR} - -cat < ${NOTMUCH_CONFIG} -[database] -path=${MAIL_DIR} - -[user] -name=Notmuch Test Suite -primary_email=test_suite@notmuchmail.org -EOF - -echo "### Testing \"notmuch new\" with no messages" -$NOTMUCH new - -echo "### Testing \"notmuch new\" with 1 new message" +test_expect_success "Testing \"notmuch new\" with no messages" ' +notmuch new +' do_sleep -generate_message -$NOTMUCH new - -echo "### Testing \"notmuch new\" with 2 new messages" +test_expect_success "Testing \"notmuch new\" with 1 new message" ' +generate_message && +notmuch new +' do_sleep -generate_message -generate_message -$NOTMUCH new - -echo "### Testing \"notmuch new\" with no new messages (and a non-empty database)" - -$NOTMUCH new - -echo "### Testing \"notmuch new\" with two new directories (one mail)" -rm -rf ${MAIL_DIR}/* ${MAIL_DIR}/.notmuch -mkdir ${MAIL_DIR}/def -mkdir ${MAIL_DIR}/ghi -generate_message def - -$NOTMUCH new - -echo "### Testing \"notmuch new\" with two new directories (one mail)---opposite inode order" - -rm -rf ${MAIL_DIR}/.notmuch -mv ${MAIL_DIR}/ghi ${MAIL_DIR}/abc -rm ${MAIL_DIR}/def/* -generate_message abc - -$NOTMUCH new - -echo "### Testing \"notmuch new\" with 1 old message moved into the mail store" -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 +test_expect_success "Testing \"notmuch new\" with 2 new messages" ' +generate_message && +generate_message && +notmuch new +' +test_expect_success "Testing \"notmuch new\" with no new messages (and a non-empty database)" ' +notmuch new +' +test_expect_success "Testing \"notmuch new\" with two new directories (one mail)" ' +rm -rf "${MAIL_DIR}"/* "${MAIL_DIR}"/.notmuch && +mkdir "${MAIL_DIR}/def" && +mkdir "${MAIL_DIR}/ghi" && +generate_message def && +notmuch new +' +test_expect_success "Testing \"notmuch new\" with two new directories (one mail)---opposite inode order" ' +rm -rf "${MAIL_DIR}/.notmuch" && +mv "${MAIL_DIR}/ghi" "${MAIL_DIR}/abc" && +rm "${MAIL_DIR}/def/"* && +generate_message abc && +notmuch new +' +test_expect_success "Testing \"notmuch new\" with 1 old message moved into the mail store" ' +rm -rf "${MAIL_DIR}/"* "${MAIL_DIR}/.notmuch" && +generate_message && +tmp_msg_filename="tmp/notmuch-${this_test}/$(basename "$gen_msg_filename")" && +mkdir -p "$(dirname "$tmp_msg_filename")" && +mv "$gen_msg_filename" "$tmp_msg_filename" && +do_sleep && +notmuch new > /dev/null && +do_sleep && +mv "$tmp_msg_filename" "$gen_msg_filename" && +notmuch new +' do_sleep -$NOTMUCH new > /dev/null +test_expect_success "Testing \"notmuch new\" with 1 renamed message" ' +generate_message && +notmuch new > /dev/null && +do_sleep && +mv "$gen_msg_filename" "${gen_msg_filename}-renamed" && +notmuch new +' do_sleep -mv $tmp_msg_filename $gen_msg_filename -$NOTMUCH new - -echo "### Testing \"notmuch new\" with 1 renamed message" - +test_expect_success "Testing \"notmuch new\" with 1 deleted message" ' +rm "${gen_msg_filename}-renamed" && +notmuch new +' do_sleep -generate_message -$NOTMUCH new > /dev/null +test_expect_success "Testing \"notmuch new\" with a new directory with 3 messages" ' +generate_message dir && +generate_message dir && +generate_message dir && +notmuch new +' do_sleep -mv $gen_msg_filename ${gen_msg_filename}-renamed -$NOTMUCH new - -echo "### Testing \"notmuch new\" with 1 deleted message" - +test_expect_success "Testing \"notmuch new\" with a renamed directory of 3 messages" ' +mv "${MAIL_DIR}/dir" "${MAIL_DIR}/dir-renamed" && +notmuch new +' do_sleep -rm ${gen_msg_filename}-renamed -$NOTMUCH new - -echo "### Testing \"notmuch new\" with a new directory with 3 messages" - +test_expect_success "Testing \"notmuch new\" with a deleted directory of 3 messages" ' +rm -rf "${MAIL_DIR}/dir-renamed" && +notmuch new +' do_sleep -generate_message dir -generate_message dir -generate_message dir - -$NOTMUCH new - -echo "### Testing \"notmuch new\" with a renamed directory of 3 messages" - -do_sleep -mv ${MAIL_DIR}/dir ${MAIL_DIR}/dir-renamed - -$NOTMUCH new - -echo "### Testing \"notmuch new\" with a deleted directory of 3 messages" - +test_expect_success "Testing \"notmuch new\" with a new directory with 3 messages (tail of list)" ' +generate_message zzz && +generate_message zzz && +generate_message zzz && +notmuch new +' do_sleep -rm -rf ${MAIL_DIR}/dir-renamed - -$NOTMUCH new - -echo "### Testing \"notmuch new\" with a new directory with 3 messages (tail of list)" +test_expect_success "Testing \"notmuch new\" with a deleted directory of 3 messages (tail of list)" ' +rm -rf "${MAIL_DIR}/zzz" && +notmuch new +' +test_expect_success "Testing \"notmuch new\" with a symlink to an external directory of 1 message" ' +rm -rf "${MAIL_DIR}/.notmuch" && +mv "${MAIL_DIR}" "./actual_maildir" && +mkdir "${MAIL_DIR}" && +ln -s ../actual_maildir "${MAIL_DIR}/symlink" && +notmuch new +' do_sleep -generate_message zzz -generate_message zzz -generate_message zzz - -$NOTMUCH new - -echo "### Testing \"notmuch new\" with a deleted directory of 3 messages (tail of list)" +test_expect_success "Testing \"notmuch new\" with a symlink to an external 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" && +notmuch new +' +do_sleep + +test_expect_success "Testing \"notmuch new\" with a two-level directory with 3 files" ' +generate_message two/levels && +generate_message two/levels && +generate_message two/levels && +notmuch new +' do_sleep -rm -rf ${MAIL_DIR}/zzz - -$NOTMUCH new - -echo "### Testing \"notmuch new\" with a symlink to an external directory of 1 message" - -rm -rf ${MAIL_DIR}/.notmuch -mv ${MAIL_DIR} ${TEST_DIR}/actual_maildir - -mkdir ${MAIL_DIR} -ln -s ${TEST_DIR}/actual_maildir ${MAIL_DIR}/symlink - -$NOTMUCH new - -echo "### Testing \"notmuch new\" with a symlink to an external file" -do_sleep -generate_message -external_msg_filename=${TEST_DIR}/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 - -$NOTMUCH new - -echo "### Testing \"notmuch new\" with a two-level directory with 3 files" - -do_sleep -generate_message two/levels -generate_message two/levels -generate_message two/levels - -$NOTMUCH new - -echo "### Testing \"notmuch new\" with deletion of two-level directory (3 files)" - -do_sleep -rm -rf ${MAIL_DIR}/two - -$NOTMUCH new -cat <