mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-21 18:38:08 +01:00
test: add known broken tests for finding database via MAILDIR
This highlights a bug reported by several users, including Mohsin Kaleem [1]. The inconsistent use of test_begin_subtest_known_broken is because some of these tests pass even though the database cannot be located. This problem is left for a future commit. [1]: id:87bl9lx864.fsf@kisara.moe
This commit is contained in:
parent
f1a310b3a9
commit
8376e81441
1 changed files with 38 additions and 6 deletions
|
@ -16,6 +16,7 @@ restore_config () {
|
|||
unset DATABASE_PATH
|
||||
unset NOTMUCH_PROFILE
|
||||
unset XAPIAN_PATH
|
||||
unset MAILDIR
|
||||
rm -f "$HOME/mail"
|
||||
cp notmuch-config-backup.${test_name} ${NOTMUCH_CONFIG}
|
||||
}
|
||||
|
@ -55,6 +56,18 @@ home_mail_config () {
|
|||
unset DATABASE_PATH
|
||||
}
|
||||
|
||||
maildir_env_config () {
|
||||
local dir
|
||||
backup_config
|
||||
dir="${HOME}/env_points_here"
|
||||
ln -s $MAIL_DIR $dir
|
||||
export MAILDIR=$dir
|
||||
notmuch config set database.path
|
||||
notmuch config set database.mail_root
|
||||
XAPIAN_PATH="${MAIL_DIR}/.notmuch/xapian"
|
||||
unset DATABASE_PATH
|
||||
}
|
||||
|
||||
xdg_config () {
|
||||
local dir
|
||||
local profile=${1:-default}
|
||||
|
@ -79,7 +92,7 @@ xdg_config () {
|
|||
notmuch --config=${CONFIG_PATH} config set database.path
|
||||
}
|
||||
|
||||
for config in traditional split XDG XDG+profile symlink home_mail; do
|
||||
for config in traditional split XDG XDG+profile symlink home_mail maildir_env; do
|
||||
#start each set of tests with an known set of messages
|
||||
add_email_corpus
|
||||
|
||||
|
@ -106,13 +119,18 @@ for config in traditional split XDG XDG+profile symlink home_mail; do
|
|||
home_mail)
|
||||
home_mail_config
|
||||
;;
|
||||
maildir_env)
|
||||
maildir_env_config
|
||||
;;
|
||||
esac
|
||||
|
||||
test_begin_subtest "count ($config)"
|
||||
[[ "$config" = maildir_env ]] && test_subtest_known_broken
|
||||
output=$(notmuch count '*')
|
||||
test_expect_equal "$output" '52'
|
||||
|
||||
test_begin_subtest "count+tag ($config)"
|
||||
[[ "$config" = maildir_env ]] && test_subtest_known_broken
|
||||
tag="tag${RANDOM}"
|
||||
notmuch tag +$tag '*'
|
||||
output=$(notmuch count tag:$tag)
|
||||
|
@ -120,6 +138,7 @@ for config in traditional split XDG XDG+profile symlink home_mail; do
|
|||
test_expect_equal "$output" '52'
|
||||
|
||||
test_begin_subtest "address ($config)"
|
||||
[[ "$config" = maildir_env ]] && test_subtest_known_broken
|
||||
notmuch address --deduplicate=no --sort=newest-first --output=sender --output=recipients path:foo >OUTPUT
|
||||
cat <<EOF >EXPECTED
|
||||
Carl Worth <cworth@cworth.org>
|
||||
|
@ -128,6 +147,7 @@ EOF
|
|||
test_expect_equal_file EXPECTED OUTPUT
|
||||
|
||||
test_begin_subtest "dump ($config)"
|
||||
[[ "$config" = maildir_env ]] && test_subtest_known_broken
|
||||
notmuch dump is:attachment and is:signed | sort > OUTPUT
|
||||
cat <<EOF > EXPECTED
|
||||
#notmuch-dump batch-tag:3 config,properties,tags
|
||||
|
@ -150,16 +170,19 @@ EOF
|
|||
test_expect_equal_file EXPECTED OUTPUT
|
||||
|
||||
test_begin_subtest "use existing database ($config)"
|
||||
[[ "$config" = "maildir_env" ]] && test_subtest_known_broken
|
||||
output=$(notmuch new)
|
||||
test_expect_equal "$output" 'No new mail.'
|
||||
|
||||
test_begin_subtest "create database ($config)"
|
||||
[[ "$config" = "maildir_env" ]] && test_subtest_known_broken
|
||||
rm -rf $DATABASE_PATH/{.notmuch,}/xapian
|
||||
notmuch new
|
||||
output=$(notmuch count '*')
|
||||
test_expect_equal "$output" '52'
|
||||
|
||||
test_begin_subtest "detect new files ($config)"
|
||||
[[ "$config" = "maildir_env" ]] && test_subtest_known_broken
|
||||
generate_message
|
||||
generate_message
|
||||
notmuch new
|
||||
|
@ -167,12 +190,14 @@ EOF
|
|||
test_expect_equal "$output" '54'
|
||||
|
||||
test_begin_subtest "Show a raw message ($config)"
|
||||
[[ "$config" = "maildir_env" ]] && test_subtest_known_broken
|
||||
add_message
|
||||
notmuch show --format=raw id:$gen_msg_id > OUTPUT
|
||||
test_expect_equal_file $gen_msg_filename OUTPUT
|
||||
rm -f $gen_msg_filename
|
||||
|
||||
test_begin_subtest "reply ($config)"
|
||||
[[ "$config" = "maildir_env" ]] && test_subtest_known_broken
|
||||
add_message '[from]="Sender <sender@example.com>"' \
|
||||
[to]=test_suite@notmuchmail.org \
|
||||
[subject]=notmuch-reply-test \
|
||||
|
@ -190,7 +215,9 @@ On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote:
|
|||
> basic reply test
|
||||
EOF
|
||||
test_expect_equal_file EXPECTED OUTPUT
|
||||
|
||||
test_begin_subtest "insert+search ($config)"
|
||||
[[ "$config" = "maildir_env" ]] && test_subtest_known_broken
|
||||
generate_message \
|
||||
"[subject]=\"insert-subject\"" \
|
||||
"[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" \
|
||||
|
@ -208,6 +235,7 @@ EOF
|
|||
test_expect_equal_file EXPECTED OUTPUT
|
||||
|
||||
test_begin_subtest "upgrade backup ($config)"
|
||||
[[ "$config" = "maildir_env" ]] && test_subtest_known_broken
|
||||
features=$(xapian-metadata get $XAPIAN_PATH features | grep -v "^relative directory paths")
|
||||
xapian-metadata set $XAPIAN_PATH features "$features"
|
||||
output=$(notmuch new | grep Welcome)
|
||||
|
@ -241,6 +269,7 @@ EOF
|
|||
test_expect_equal "${output}+${output2}" "${value}+"
|
||||
|
||||
test_begin_subtest "Set config value in database ($config)"
|
||||
[[ "$config" = "maildir_env" ]] && test_subtest_known_broken
|
||||
name=${RANDOM}
|
||||
value=${RANDOM}
|
||||
notmuch config set --database test${test_count}.${name} ${value}
|
||||
|
@ -250,11 +279,14 @@ EOF
|
|||
test_expect_equal "${output}+${output2}" "${value}+"
|
||||
|
||||
test_begin_subtest "Config list ($config)"
|
||||
notmuch config list | notmuch_dir_sanitize | sed -e "s/^database.backup_dir=.*$/database.backup_dir/" \
|
||||
-e "s/^database.hook_dir=.*$/database.hook_dir/" \
|
||||
-e "s/^database.path=.*$/database.path/" \
|
||||
-e "s,^database.mail_root=CWD/home/mail,database.mail_root=MAIL_DIR," \
|
||||
> OUTPUT
|
||||
[[ "$config" = "maildir_env" ]] && test_subtest_known_broken
|
||||
notmuch config list | notmuch_dir_sanitize | \
|
||||
sed -e "s/^database.backup_dir=.*$/database.backup_dir/" \
|
||||
-e "s/^database.hook_dir=.*$/database.hook_dir/" \
|
||||
-e "s/^database.path=.*$/database.path/" \
|
||||
-e "s,^database.mail_root=CWD/home/mail,database.mail_root=MAIL_DIR," \
|
||||
-e "s,^database.mail_root=CWD/home/env_points_here,database.mail_root=MAIL_DIR," \
|
||||
> OUTPUT
|
||||
cat <<EOF > EXPECTED
|
||||
built_with.compact=true
|
||||
built_with.field_processor=true
|
||||
|
|
Loading…
Reference in a new issue