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.
This commit is contained in:
Kevin Boulain 2023-03-29 18:19:57 +02:00 committed by David Bremner
parent d86e03c786
commit c810312e24

View file

@ -362,4 +362,36 @@ for (key,val) in msg.get_properties("testkey",True):
EOF EOF
test_expect_equal_file /dev/null OUTPUT 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 test_done