summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael J Gruber <git@grubix.eu>2021-05-11 22:48:52 +0200
committerDavid Bremner <david@tethera.net>2021-05-12 08:34:34 -0300
commit0729c4e81f094eb6c81ba7c4287d90726c89d619 (patch)
treee59e1c3cc7399320305754c699f548e4fecd86d9
parent5ebbf17242522e3a00d7f084f0ddfc86b0611825 (diff)
test: change database from within pre-new hook
Due to the change in the config system, notmuch keeps a notmuch database open when it would not do so before. Consequently, it can miss changes to the database which are done from a hook (while notmuch holds the databse in read only mode). When notmuch itself writes to the database after that it uses wrong assumptions about the last used doc id etc. Demonstrate this by triggering an assertion. (This new test succeeds with notmuch 0.31.4.) Signed-off-by: Michael J Gruber <git@grubix.eu> Amended-by: db. Check for both messages
-rwxr-xr-xtest/T400-hooks.sh25
1 files changed, 25 insertions, 0 deletions
diff --git a/test/T400-hooks.sh b/test/T400-hooks.sh
index 00c99337..777338d7 100755
--- a/test/T400-hooks.sh
+++ b/test/T400-hooks.sh
@@ -28,6 +28,16 @@ EOF
echo "${TOKEN}" > ${2}
}
+create_change_hook () {
+ mkdir -p ${HOOK_DIR}
+ cat <<EOF >"${HOOK_DIR}/${1}"
+#!/bin/sh
+notmuch insert --no-hooks < ${2} > /dev/null
+rm -f ${2}
+EOF
+ chmod +x "${HOOK_DIR}/${1}"
+}
+
create_failing_hook () {
local HOOK_DIR=${2}
mkdir -p ${HOOK_DIR}
@@ -176,6 +186,21 @@ EOF
NOTMUCH_NEW
test_expect_equal_file write.expected write.output
+ test_begin_subtest "add message in pre-new [${config}]"
+ test_subtest_known_broken
+ rm -rf ${HOOK_DIR}
+ generate_message '[subject]="add msg in pre-new"'
+ id1=$gen_msg_id
+ create_change_hook "pre-new" $gen_msg_filename $HOOK_DIR
+ generate_message '[subject]="add msg in new"'
+ NOTMUCH_NEW
+ notmuch search id:$id1 or id:$gen_msg_id | notmuch_search_sanitize > OUTPUT
+ cat <<EOF | sed s'/^[ \t]*//' > EXPECTED
+ thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; add msg in pre-new (inbox unread)
+ thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; add msg in new (inbox unread)
+EOF
+ test_expect_equal_file EXPECTED OUTPUT
+
rm -rf ${HOOK_DIR}
done
test_done