#!/usr/bin/env bash test_description='Configuration of mail-root and database path' . $(dirname "$0")/test-lib.sh || exit 1 backup_config () { local test_name=$(basename $0 .sh) cp ${NOTMUCH_CONFIG} notmuch-config-backup.${test_name} } restore_config () { local test_name=$(basename $0 .sh) export NOTMUCH_CONFIG="${TMP_DIRECTORY}/notmuch-config" unset CONFIG_PATH unset DATABASE_PATH unset NOTMUCH_PROFILE cp notmuch-config-backup.${test_name} ${NOTMUCH_CONFIG} } split_config () { local dir backup_config dir="$TMP_DIRECTORY/database.$test_count" rm -rf $dir mkdir $dir notmuch config set database.path $dir notmuch config set database.mail_root $MAIL_DIR DATABASE_PATH=$dir } for config in traditional split; do # start each set of tests with a known set of messages add_email_corpus case $config in traditional) backup_config ;; split) split_config mv mail/.notmuch/xapian $DATABASE_PATH ;; esac test_begin_subtest "count ($config)" output=$(notmuch count '*') test_expect_equal "$output" '52' test_begin_subtest "count+tag ($config)" tag="tag${RANDOM}" notmuch tag +$tag '*' output=$(notmuch count tag:$tag) notmuch tag -$tag '*' test_expect_equal "$output" '52' test_begin_subtest "address ($config)" notmuch address --deduplicate=no --sort=newest-first --output=sender --output=recipients path:foo >OUTPUT cat <EXPECTED Carl Worth notmuch@notmuchmail.org EOF test_expect_equal_file EXPECTED OUTPUT test_begin_subtest "dump ($config)" notmuch dump is:attachment and is:signed | sort > OUTPUT cat < EXPECTED #notmuch-dump batch-tag:3 config,properties,tags +attachment +inbox +signed +unread -- id:20091118005829.GB25380@dottiness.seas.harvard.edu +attachment +inbox +signed +unread -- id:20091118010116.GC25380@dottiness.seas.harvard.edu EOF test_expect_equal_file EXPECTED OUTPUT test_begin_subtest "dump + tag + restore ($config)" notmuch dump '*' > EXPECTED notmuch tag -inbox '*' notmuch restore < EXPECTED notmuch dump > OUTPUT test_expect_equal_file EXPECTED OUTPUT test_begin_subtest "reindex ($config)" notmuch search --output=messages '*' > EXPECTED notmuch reindex '*' notmuch search --output=messages '*' > OUTPUT test_expect_equal_file EXPECTED OUTPUT restore_config done test_done