aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Boulain <kevin@boula.in>2023-03-29 18:19:57 +0200
committerDavid Bremner <david@tethera.net>2023-03-30 07:06:48 -0300
commitc810312e24067a7176a26b35893cf64f754886c5 (patch)
treeee80fd32ad87c6569a5998708ef2d5fa01492ecc
parentd86e03c786ec51e2ca4af4e7c756cd19adbe17a8 (diff)
test: uncaught exception when editing properties of a removed message
These two functions don't fail gracefully when editing a removed message: BROKEN edit property on removed message without uncaught exception --- T610-message-property.20.EXPECTED 2023-02-27 11:33:25.792764376 +0000 +++ T610-message-property.20.OUTPUT 2023-02-27 11:33:25.793764381 +0000 @@ -1,2 +1,3 @@ == stdout == == stderr == +terminate called after throwing an instance of 'Xapian::DocNotFoundError' The other functions appear to be safe.
-rwxr-xr-xtest/T610-message-property.sh32
1 files changed, 32 insertions, 0 deletions
diff --git a/test/T610-message-property.sh b/test/T610-message-property.sh
index 2685f3b5..402b4e9a 100755
--- a/test/T610-message-property.sh
+++ b/test/T610-message-property.sh
@@ -362,4 +362,36 @@ for (key,val) in msg.get_properties("testkey",True):
EOF
test_expect_equal_file /dev/null OUTPUT
+test_begin_subtest "edit property on removed message without uncaught exception"
+test_subtest_known_broken
+cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR}
+EXPECT0(notmuch_database_remove_message (db, notmuch_message_get_filename (message)));
+stat = notmuch_message_remove_property (message, "example", "example");
+if (stat == NOTMUCH_STATUS_XAPIAN_EXCEPTION)
+ fprintf (stderr, "unable to remove properties on message");
+EOF
+cat <<'EOF' >EXPECTED
+== stdout ==
+== stderr ==
+unable to remove properties on message
+EOF
+test_expect_equal_file EXPECTED OUTPUT
+
+add_email_corpus
+
+test_begin_subtest "remove all properties on removed message without uncaught exception"
+test_subtest_known_broken
+cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR}
+EXPECT0(notmuch_database_remove_message (db, notmuch_message_get_filename (message)));
+stat = notmuch_message_remove_all_properties_with_prefix (message, "");
+if (stat == NOTMUCH_STATUS_XAPIAN_EXCEPTION)
+ fprintf (stderr, "unable to remove properties on message");
+EOF
+cat <<'EOF' >EXPECTED
+== stdout ==
+== stderr ==
+unable to remove properties on message
+EOF
+test_expect_equal_file EXPECTED OUTPUT
+
test_done