From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id iPppMWYaGF8IEQAA0tVLHw (envelope-from ) for ; Wed, 22 Jul 2020 10:52:22 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id MB45LWYaGF/MBgAA1q6Kng (envelope-from ) for ; Wed, 22 Jul 2020 10:52:22 +0000 Received: from mail.notmuchmail.org (nmbug.tethera.net [IPv6:2607:5300:201:3100::1657]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (2048 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 6E2F4940225 for ; Wed, 22 Jul 2020 10:52:22 +0000 (UTC) Received: from [144.217.243.247] (localhost [127.0.0.1]) by mail.notmuchmail.org (Postfix) with ESMTP id AE8AB26E4E; Wed, 22 Jul 2020 06:51:58 -0400 (EDT) Received: from fethera.tethera.net (fethera.tethera.net [IPv6:2607:5300:60:c5::1]) by mail.notmuchmail.org (Postfix) with ESMTP id 75D5E1FCC1 for ; Wed, 22 Jul 2020 06:51:48 -0400 (EDT) Received: by fethera.tethera.net (Postfix, from userid 1001) id 6D9FC60AB7; Wed, 22 Jul 2020 06:51:48 -0400 (EDT) Received: (nullmailer pid 373156 invoked by uid 1000); Wed, 22 Jul 2020 10:51:42 -0000 From: David Bremner To: notmuch@notmuchmail.org Cc: David Bremner Subject: [PATCH 01/10] test: move notmuch_message_* tests to their own file Date: Wed, 22 Jul 2020 07:51:18 -0300 Message-Id: <20200722105127.373054-2-david@tethera.net> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200722105127.373054-1-david@tethera.net> References: <20200722105127.373054-1-david@tethera.net> MIME-Version: 1.0 Message-ID-Hash: VIAUKA54YRIGKXFW72GBDZ4Z6AAHJZHV X-Message-ID-Hash: VIAUKA54YRIGKXFW72GBDZ4Z6AAHJZHV X-MailFrom: bremner@tethera.net X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-notmuch.notmuchmail.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header X-Mailman-Version: 3.2.1 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Help: List-Post: List-Subscribe: List-Unsubscribe: Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Scanner: scn0 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of notmuch-bounces@notmuchmail.org designates 2607:5300:201:3100::1657 as permitted sender) smtp.mailfrom=notmuch-bounces@notmuchmail.org X-Spam-Score: 1.53 X-TUID: IqbBsWy5FQ2u This is for consistency with the recently added tests for notmuch_database_*. --- test/T560-lib-error.sh | 359 ------------------------------------ test/T566-lib-message.sh | 380 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 380 insertions(+), 359 deletions(-) create mode 100755 test/T566-lib-message.sh diff --git a/test/T560-lib-error.sh b/test/T560-lib-error.sh index 908bb9d8..70df292a 100755 --- a/test/T560-lib-error.sh +++ b/test/T560-lib-error.sh @@ -318,363 +318,4 @@ EOF test_expect_equal_file EXPECTED OUTPUT.clean restore_database -cat < c_head2 -#include -#include -#include -int main (int argc, char** argv) -{ - notmuch_database_t *db; - notmuch_status_t stat; - char *msg = NULL; - notmuch_message_t *message = NULL; - const char *id = "1258471718-6781-1-git-send-email-dottedmag@dottedmag.net"; - - stat = notmuch_database_open_verbose (argv[1], NOTMUCH_DATABASE_MODE_READ_WRITE, &db, &msg); - if (stat != NOTMUCH_STATUS_SUCCESS) { - fprintf (stderr, "error opening database: %d %s\n", stat, msg ? msg : ""); - exit (1); - } - EXPECT0(notmuch_database_find_message (db, id, &message)); - EXPECT0(notmuch_database_close (db)); -EOF - -test_begin_subtest "Handle getting message-id from closed database" -cat c_head2 - c_tail <<'EOF' | test_C ${MAIL_DIR} - { - const char *id2; - id2=notmuch_message_get_message_id (message); - printf("%d\n%d\n", message != NULL, id2==NULL); - } -EOF -cat < EXPECTED -== stdout == -1 -1 -== stderr == -EOF -test_expect_equal_file EXPECTED OUTPUT - -test_begin_subtest "Handle getting thread-id from closed database" -cat c_head2 - c_tail <<'EOF' | test_C ${MAIL_DIR} - { - const char *id2; - id2=notmuch_message_get_thread_id (message); - printf("%d\n%d\n", message != NULL, id2==NULL); - } -EOF -cat < EXPECTED -== stdout == -1 -1 -== stderr == -EOF -test_expect_equal_file EXPECTED OUTPUT - -test_begin_subtest "Handle getting header from closed database" -cat c_head2 - c_tail <<'EOF' | test_C ${MAIL_DIR} - { - const char *from; - from=notmuch_message_get_header (message, "from"); - printf("%s\n%d\n", id, from == NULL); - } -EOF -cat < EXPECTED -== stdout == -1258471718-6781-1-git-send-email-dottedmag@dottedmag.net -1 -== stderr == -EOF -test_expect_equal_file EXPECTED OUTPUT - -# XXX TODO: test on a message from notmuch_thread_get_toplevel_messages -# XXX this test only tests the trivial code path -test_begin_subtest "Handle getting replies from closed database" -cat c_head2 - c_tail <<'EOF' | test_C ${MAIL_DIR} - { - notmuch_messages_t *replies; - replies = notmuch_message_get_replies (message); - printf("%d\n%d\n", message != NULL, replies==NULL); - } -EOF -cat < EXPECTED -== stdout == -1 -1 -== stderr == -EOF -test_expect_equal_file EXPECTED OUTPUT - -test_begin_subtest "Handle getting message filename from closed database" -cat c_head2 - c_tail <<'EOF' | test_C ${MAIL_DIR} - { - const char *filename; - filename = notmuch_message_get_filename (message); - printf("%d\n%d\n", message != NULL, filename == NULL); - } -EOF -cat < EXPECTED -== stdout == -1 -1 -== stderr == -EOF -test_expect_equal_file EXPECTED OUTPUT - -test_begin_subtest "Handle getting all message filenames from closed database" -cat c_head2 - c_tail <<'EOF' | test_C ${MAIL_DIR} - { - notmuch_filenames_t *filenames; - filenames = notmuch_message_get_filenames (message); - printf("%d\n%d\n", message != NULL, filenames == NULL); - } -EOF -cat < EXPECTED -== stdout == -1 -1 -== stderr == -EOF -test_expect_equal_file EXPECTED OUTPUT - -test_begin_subtest "Handle getting ghost flag from closed database" -cat c_head2 - c_tail <<'EOF' | test_C ${MAIL_DIR} - { - notmuch_bool_t result; - result = notmuch_message_get_flag (message, NOTMUCH_MESSAGE_FLAG_GHOST); - printf("%d\n%d\n", message != NULL, result == FALSE); - } -EOF -cat < EXPECTED -== stdout == -1 -1 -== stderr == -EOF -test_expect_equal_file EXPECTED OUTPUT - -test_begin_subtest "Handle getting date from closed database" -cat c_head2 - c_tail <<'EOF' | test_C ${MAIL_DIR} - { - time_t result; - result = notmuch_message_get_date (message); - printf("%d\n%d\n", message != NULL, result == 0); - } -EOF -cat < EXPECTED -== stdout == -1 -1 -== stderr == -EOF -test_expect_equal_file EXPECTED OUTPUT - -test_begin_subtest "Handle getting tags from closed database" -cat c_head2 - c_tail <<'EOF' | test_C ${MAIL_DIR} - { - notmuch_tags_t *result; - result = notmuch_message_get_tags (message); - printf("%d\n%d\n", message != NULL, result == NULL); - } -EOF -cat < EXPECTED -== stdout == -1 -1 -== stderr == -EOF -test_expect_equal_file EXPECTED OUTPUT - -test_begin_subtest "Handle counting files from closed database" -cat c_head2 - c_tail <<'EOF' | test_C ${MAIL_DIR} - { - int result; - result = notmuch_message_count_files (message); - printf("%d\n%d\n", message != NULL, result < 0); - } -EOF -cat < EXPECTED -== stdout == -1 -1 -== stderr == -EOF -test_expect_equal_file EXPECTED OUTPUT - -test_begin_subtest "Handle adding tag with closed database" -cat c_head2 - c_tail <<'EOF' | test_C ${MAIL_DIR} - { - notmuch_status_t status; - status = notmuch_message_add_tag (message, "boom"); - printf("%d\n%d\n", message != NULL, status == NOTMUCH_STATUS_XAPIAN_EXCEPTION); - } -EOF -cat < EXPECTED -== stdout == -1 -1 -== stderr == -EOF -test_expect_equal_file EXPECTED OUTPUT - -test_begin_subtest "Handle removing tag with closed database" -cat c_head2 - c_tail <<'EOF' | test_C ${MAIL_DIR} - { - notmuch_status_t status; - status = notmuch_message_remove_tag (message, "boom"); - printf("%d\n%d\n", message != NULL, status == NOTMUCH_STATUS_XAPIAN_EXCEPTION); - } -EOF -cat < EXPECTED -== stdout == -1 -1 -== stderr == -EOF -test_expect_equal_file EXPECTED OUTPUT - -test_begin_subtest "Handle read maildir flag with closed database" -cat c_head2 - c_tail <<'EOF' | test_C ${MAIL_DIR} - { - notmuch_bool_t is_set = -1; - is_set = notmuch_message_has_maildir_flag (message, 'S'); - printf("%d\n%d\n", message != NULL, is_set == FALSE || is_set == TRUE); - } -EOF -cat < EXPECTED -== stdout == -1 -1 -== stderr == -EOF -test_expect_equal_file EXPECTED OUTPUT - -test_begin_subtest "Handle checking maildir flag with closed db (new API)" -cat c_head2 - c_tail <<'EOF' | test_C ${MAIL_DIR} - { - notmuch_status_t status; - notmuch_bool_t out; - status = notmuch_message_has_maildir_flag_st (message, 'S', &out); - printf("%d\n%d\n", message != NULL, status == NOTMUCH_STATUS_XAPIAN_EXCEPTION); - } -EOF -cat < EXPECTED -== stdout == -1 -1 -== stderr == -EOF -test_expect_equal_file EXPECTED OUTPUT - -test_begin_subtest "Handle converting maildir flags to tags with closed db" -cat c_head2 - c_tail <<'EOF' | test_C ${MAIL_DIR} - { - notmuch_status_t status; - status = notmuch_message_maildir_flags_to_tags (message); - printf("%d\n%d\n", message != NULL, status == NOTMUCH_STATUS_XAPIAN_EXCEPTION); - } -EOF -cat < EXPECTED -== stdout == -1 -1 -== stderr == -EOF -test_expect_equal_file EXPECTED OUTPUT - -test_begin_subtest "Handle removing all tags with closed db" -cat c_head2 - c_tail <<'EOF' | test_C ${MAIL_DIR} - { - notmuch_status_t status; - status = notmuch_message_remove_all_tags (message); - printf("%d\n%d\n", message != NULL, status == NOTMUCH_STATUS_XAPIAN_EXCEPTION); - } -EOF -cat < EXPECTED -== stdout == -1 -1 -== stderr == -EOF -test_expect_equal_file EXPECTED OUTPUT - -test_begin_subtest "Handle freezing message with closed db" -cat c_head2 - c_tail <<'EOF' | test_C ${MAIL_DIR} - { - notmuch_status_t status; - status = notmuch_message_freeze (message); - printf("%d\n%d\n", message != NULL, status == NOTMUCH_STATUS_SUCCESS); - } -EOF -cat < EXPECTED -== stdout == -1 -1 -== stderr == -EOF -test_expect_equal_file EXPECTED OUTPUT - -test_begin_subtest "Handle thawing message with closed db" -cat c_head2 - c_tail <<'EOF' | test_C ${MAIL_DIR} - { - notmuch_status_t status; - status = notmuch_message_thaw (message); - printf("%d\n%d\n", message != NULL, status == NOTMUCH_STATUS_UNBALANCED_FREEZE_THAW); - } -EOF -cat < EXPECTED -== stdout == -1 -1 -== stderr == -EOF -test_expect_equal_file EXPECTED OUTPUT - -test_begin_subtest "Handle destroying message with closed db" -cat c_head2 - c_tail <<'EOF' | test_C ${MAIL_DIR} - { - notmuch_message_destroy (message); - printf("%d\n%d\n", message != NULL, 1); - } -EOF -cat < EXPECTED -== stdout == -1 -1 -== stderr == -EOF -test_expect_equal_file EXPECTED OUTPUT - -test_begin_subtest "Handle retrieving closed db from message" -cat c_head2 - c_tail <<'EOF' | test_C ${MAIL_DIR} - { - notmuch_database_t *db2; - db2 = notmuch_message_get_database (message); - printf("%d\n%d\n", message != NULL, db == db2); - } -EOF -cat < EXPECTED -== stdout == -1 -1 -== stderr == -EOF -test_expect_equal_file EXPECTED OUTPUT - -test_begin_subtest "Handle reindexing message with closed db" -cat c_head2 - c_tail <<'EOF' | test_C ${MAIL_DIR} - { - notmuch_status_t status; - status = notmuch_message_reindex (message, NULL); - printf("%d\n%d\n", message != NULL, status == NOTMUCH_STATUS_XAPIAN_EXCEPTION); - } -EOF -cat < EXPECTED -== stdout == -1 -1 -== stderr == -EOF -test_expect_equal_file EXPECTED OUTPUT - test_done diff --git a/test/T566-lib-message.sh b/test/T566-lib-message.sh new file mode 100755 index 00000000..0c5575a9 --- /dev/null +++ b/test/T566-lib-message.sh @@ -0,0 +1,380 @@ +#!/usr/bin/env bash +test_description="API tests for notmuch_message_*" + +. $(dirname "$0")/test-lib.sh || exit 1 + +add_email_corpus + +test_begin_subtest "building database" +test_expect_success "NOTMUCH_NEW" + +cat <<'EOF' > c_tail + if (stat) { + const char *stat_str = notmuch_database_status_string (db); + if (stat_str) + fputs (stat_str, stderr); + } + +} +EOF + +cat < c_head +#include +#include +#include +int main (int argc, char** argv) +{ + notmuch_database_t *db; + notmuch_status_t stat; + char *msg = NULL; + notmuch_message_t *message = NULL; + const char *id = "1258471718-6781-1-git-send-email-dottedmag@dottedmag.net"; + + stat = notmuch_database_open_verbose (argv[1], NOTMUCH_DATABASE_MODE_READ_WRITE, &db, &msg); + if (stat != NOTMUCH_STATUS_SUCCESS) { + fprintf (stderr, "error opening database: %d %s\n", stat, msg ? msg : ""); + exit (1); + } + EXPECT0(notmuch_database_find_message (db, id, &message)); + EXPECT0(notmuch_database_close (db)); +EOF + +test_begin_subtest "Handle getting message-id from closed database" +cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR} + { + const char *id2; + id2=notmuch_message_get_message_id (message); + printf("%d\n%d\n", message != NULL, id2==NULL); + } +EOF +cat < EXPECTED +== stdout == +1 +1 +== stderr == +EOF +test_expect_equal_file EXPECTED OUTPUT + +test_begin_subtest "Handle getting thread-id from closed database" +cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR} + { + const char *id2; + id2=notmuch_message_get_thread_id (message); + printf("%d\n%d\n", message != NULL, id2==NULL); + } +EOF +cat < EXPECTED +== stdout == +1 +1 +== stderr == +EOF +test_expect_equal_file EXPECTED OUTPUT + +test_begin_subtest "Handle getting header from closed database" +cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR} + { + const char *from; + from=notmuch_message_get_header (message, "from"); + printf("%s\n%d\n", id, from == NULL); + } +EOF +cat < EXPECTED +== stdout == +1258471718-6781-1-git-send-email-dottedmag@dottedmag.net +1 +== stderr == +EOF +test_expect_equal_file EXPECTED OUTPUT + +# XXX TODO: test on a message from notmuch_thread_get_toplevel_messages +# XXX this test only tests the trivial code path +test_begin_subtest "Handle getting replies from closed database" +cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR} + { + notmuch_messages_t *replies; + replies = notmuch_message_get_replies (message); + printf("%d\n%d\n", message != NULL, replies==NULL); + } +EOF +cat < EXPECTED +== stdout == +1 +1 +== stderr == +EOF +test_expect_equal_file EXPECTED OUTPUT + +test_begin_subtest "Handle getting message filename from closed database" +cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR} + { + const char *filename; + filename = notmuch_message_get_filename (message); + printf("%d\n%d\n", message != NULL, filename == NULL); + } +EOF +cat < EXPECTED +== stdout == +1 +1 +== stderr == +EOF +test_expect_equal_file EXPECTED OUTPUT + +test_begin_subtest "Handle getting all message filenames from closed database" +cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR} + { + notmuch_filenames_t *filenames; + filenames = notmuch_message_get_filenames (message); + printf("%d\n%d\n", message != NULL, filenames == NULL); + } +EOF +cat < EXPECTED +== stdout == +1 +1 +== stderr == +EOF +test_expect_equal_file EXPECTED OUTPUT + +test_begin_subtest "Handle getting ghost flag from closed database" +cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR} + { + notmuch_bool_t result; + result = notmuch_message_get_flag (message, NOTMUCH_MESSAGE_FLAG_GHOST); + printf("%d\n%d\n", message != NULL, result == FALSE); + } +EOF +cat < EXPECTED +== stdout == +1 +1 +== stderr == +EOF +test_expect_equal_file EXPECTED OUTPUT + +test_begin_subtest "Handle getting date from closed database" +cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR} + { + time_t result; + result = notmuch_message_get_date (message); + printf("%d\n%d\n", message != NULL, result == 0); + } +EOF +cat < EXPECTED +== stdout == +1 +1 +== stderr == +EOF +test_expect_equal_file EXPECTED OUTPUT + +test_begin_subtest "Handle getting tags from closed database" +cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR} + { + notmuch_tags_t *result; + result = notmuch_message_get_tags (message); + printf("%d\n%d\n", message != NULL, result == NULL); + } +EOF +cat < EXPECTED +== stdout == +1 +1 +== stderr == +EOF +test_expect_equal_file EXPECTED OUTPUT + +test_begin_subtest "Handle counting files from closed database" +cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR} + { + int result; + result = notmuch_message_count_files (message); + printf("%d\n%d\n", message != NULL, result < 0); + } +EOF +cat < EXPECTED +== stdout == +1 +1 +== stderr == +EOF +test_expect_equal_file EXPECTED OUTPUT + +test_begin_subtest "Handle adding tag with closed database" +cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR} + { + notmuch_status_t status; + status = notmuch_message_add_tag (message, "boom"); + printf("%d\n%d\n", message != NULL, status == NOTMUCH_STATUS_XAPIAN_EXCEPTION); + } +EOF +cat < EXPECTED +== stdout == +1 +1 +== stderr == +EOF +test_expect_equal_file EXPECTED OUTPUT + +test_begin_subtest "Handle removing tag with closed database" +cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR} + { + notmuch_status_t status; + status = notmuch_message_remove_tag (message, "boom"); + printf("%d\n%d\n", message != NULL, status == NOTMUCH_STATUS_XAPIAN_EXCEPTION); + } +EOF +cat < EXPECTED +== stdout == +1 +1 +== stderr == +EOF +test_expect_equal_file EXPECTED OUTPUT + +test_begin_subtest "Handle read maildir flag with closed database" +cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR} + { + notmuch_bool_t is_set = -1; + is_set = notmuch_message_has_maildir_flag (message, 'S'); + printf("%d\n%d\n", message != NULL, is_set == FALSE || is_set == TRUE); + } +EOF +cat < EXPECTED +== stdout == +1 +1 +== stderr == +EOF +test_expect_equal_file EXPECTED OUTPUT + +test_begin_subtest "Handle checking maildir flag with closed db (new API)" +cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR} + { + notmuch_status_t status; + notmuch_bool_t out; + status = notmuch_message_has_maildir_flag_st (message, 'S', &out); + printf("%d\n%d\n", message != NULL, status == NOTMUCH_STATUS_XAPIAN_EXCEPTION); + } +EOF +cat < EXPECTED +== stdout == +1 +1 +== stderr == +EOF +test_expect_equal_file EXPECTED OUTPUT + +test_begin_subtest "Handle converting maildir flags to tags with closed db" +cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR} + { + notmuch_status_t status; + status = notmuch_message_maildir_flags_to_tags (message); + printf("%d\n%d\n", message != NULL, status == NOTMUCH_STATUS_XAPIAN_EXCEPTION); + } +EOF +cat < EXPECTED +== stdout == +1 +1 +== stderr == +EOF +test_expect_equal_file EXPECTED OUTPUT + +test_begin_subtest "Handle removing all tags with closed db" +cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR} + { + notmuch_status_t status; + status = notmuch_message_remove_all_tags (message); + printf("%d\n%d\n", message != NULL, status == NOTMUCH_STATUS_XAPIAN_EXCEPTION); + } +EOF +cat < EXPECTED +== stdout == +1 +1 +== stderr == +EOF +test_expect_equal_file EXPECTED OUTPUT + +test_begin_subtest "Handle freezing message with closed db" +cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR} + { + notmuch_status_t status; + status = notmuch_message_freeze (message); + printf("%d\n%d\n", message != NULL, status == NOTMUCH_STATUS_SUCCESS); + } +EOF +cat < EXPECTED +== stdout == +1 +1 +== stderr == +EOF +test_expect_equal_file EXPECTED OUTPUT + +test_begin_subtest "Handle thawing message with closed db" +cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR} + { + notmuch_status_t status; + status = notmuch_message_thaw (message); + printf("%d\n%d\n", message != NULL, status == NOTMUCH_STATUS_UNBALANCED_FREEZE_THAW); + } +EOF +cat < EXPECTED +== stdout == +1 +1 +== stderr == +EOF +test_expect_equal_file EXPECTED OUTPUT + +test_begin_subtest "Handle destroying message with closed db" +cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR} + { + notmuch_message_destroy (message); + printf("%d\n%d\n", message != NULL, 1); + } +EOF +cat < EXPECTED +== stdout == +1 +1 +== stderr == +EOF +test_expect_equal_file EXPECTED OUTPUT + +test_begin_subtest "Handle retrieving closed db from message" +cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR} + { + notmuch_database_t *db2; + db2 = notmuch_message_get_database (message); + printf("%d\n%d\n", message != NULL, db == db2); + } +EOF +cat < EXPECTED +== stdout == +1 +1 +== stderr == +EOF +test_expect_equal_file EXPECTED OUTPUT + +test_begin_subtest "Handle reindexing message with closed db" +cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR} + { + notmuch_status_t status; + status = notmuch_message_reindex (message, NULL); + printf("%d\n%d\n", message != NULL, status == NOTMUCH_STATUS_XAPIAN_EXCEPTION); + } +EOF +cat < EXPECTED +== stdout == +1 +1 +== stderr == +EOF +test_expect_equal_file EXPECTED OUTPUT + +test_done -- 2.27.0