aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorDavid Bremner <david@tethera.net>2021-02-17 11:26:15 -0400
committerDavid Bremner <david@tethera.net>2021-03-20 07:53:02 -0300
commit4e209ca99ac8084a357c6fc8d7773f6207cfa16d (patch)
tree5b99f0a0e79aa7a06d28d6ffa08b98bfd125bb14 /test
parenta7873df331bcd53dd1bc8da95c4279163437cc13 (diff)
CLI/new: use configuration variable for backup directory
The stat is essentially replaced by the mkdir for error detection purposes. This changes the default location for backups to make things tidier, even in non-split configurations. Hopefully there is not too many user scripts relying on the previous location. Because the default location may not exist, replace the use of stat for error detection with a call to mkdir.
Diffstat (limited to 'test')
-rwxr-xr-xtest/T055-path-config.sh15
-rwxr-xr-xtest/T530-upgrade.sh2
2 files changed, 16 insertions, 1 deletions
diff --git a/test/T055-path-config.sh b/test/T055-path-config.sh
index e4812c82..d8828342 100755
--- a/test/T055-path-config.sh
+++ b/test/T055-path-config.sh
@@ -2,6 +2,8 @@
test_description='Configuration of mail-root and database path'
. $(dirname "$0")/test-lib.sh || exit 1
+test_require_external_prereq xapian-metdata
+
backup_config () {
local test_name=$(basename $0 .sh)
cp ${NOTMUCH_CONFIG} notmuch-config-backup.${test_name}
@@ -13,6 +15,7 @@ restore_config () {
unset CONFIG_PATH
unset DATABASE_PATH
unset NOTMUCH_PROFILE
+ unset XAPIAN_PATH
cp notmuch-config-backup.${test_name} ${NOTMUCH_CONFIG}
}
@@ -25,6 +28,7 @@ split_config () {
notmuch config set database.path $dir
notmuch config set database.mail_root $MAIL_DIR
DATABASE_PATH=$dir
+ XAPIAN_PATH="$dir/xapian"
}
symlink_config () {
@@ -34,6 +38,7 @@ symlink_config () {
ln -s $MAIL_DIR $dir
notmuch config set database.path $dir
notmuch config set database.mail_root $MAIL_DIR
+ XAPIAN_PATH="$MAIL_DIR/.notmuch/xapian"
unset DATABASE_PATH
}
@@ -56,6 +61,7 @@ xdg_config () {
mv ${NOTMUCH_CONFIG} $CONFIG_PATH
unset NOTMUCH_CONFIG
+ XAPIAN_PATH="${DATABASE_PATH}/xapian"
notmuch --config=${CONFIG_PATH} config set database.mail_root ${TMP_DIRECTORY}/mail
notmuch --config=${CONFIG_PATH} config set database.path
}
@@ -67,6 +73,7 @@ for config in traditional split XDG XDG+profile symlink; do
case $config in
traditional)
backup_config
+ XAPIAN_PATH="$MAIL_DIR/.notmuch/xapian"
;;
split)
split_config
@@ -184,6 +191,14 @@ EOF
notmuch search --output=messages '*' | sort > OUTPUT
test_expect_equal_file EXPECTED OUTPUT
+ test_begin_subtest "upgrade backup ($config)"
+ features=$(xapian-metadata get $XAPIAN_PATH features | grep -v "^relative directory paths")
+ xapian-metadata set $XAPIAN_PATH features "$features"
+ output=$(notmuch new | grep Welcome)
+ test_expect_equal \
+ "$output" \
+ "Welcome to a new version of notmuch! Your database will now be upgraded."
+
restore_config
done
diff --git a/test/T530-upgrade.sh b/test/T530-upgrade.sh
index c599dacf..cce29f45 100755
--- a/test/T530-upgrade.sh
+++ b/test/T530-upgrade.sh
@@ -5,7 +5,7 @@ test_description='database upgrades'
test_require_external_prereq xapian-metadata
XAPIAN_PATH=$MAIL_DIR/.notmuch/xapian
-BACKUP_PATH=$MAIL_DIR/.notmuch
+BACKUP_PATH=$MAIL_DIR/.notmuch/backups
delete_feature () {
local key=$1