]> git.notmuchmail.org Git - notmuch/blobdiff - test/T560-lib-error.sh
emacs: Add new option notmuch-search-hide-excluded
[notmuch] / test / T560-lib-error.sh
index 68180e411d002eace7c97318fbe3f916f114119a..78cae1cd8ee6f93da9412ae1b8d71b9f4226d9f5 100755 (executable)
@@ -16,13 +16,17 @@ int main (int argc, char** argv)
 {
     notmuch_database_t *db;
     notmuch_status_t stat;
-    stat = notmuch_database_open (NULL, 0, 0);
+    char* msg = NULL;
+    stat = notmuch_database_open_with_config (NULL,
+                                             NOTMUCH_DATABASE_MODE_READ_ONLY,
+                                             "", NULL, &db, &msg);
+    if (msg) fputs (msg, stderr);
 }
 EOF
 cat <<'EOF' >EXPECTED
 == stdout ==
 == stderr ==
-Error: Cannot open a database for a NULL path.
+Error: could not locate database.
 EOF
 test_expect_equal_file EXPECTED OUTPUT
 
@@ -34,7 +38,11 @@ int main (int argc, char** argv)
 {
     notmuch_database_t *db;
     notmuch_status_t stat;
-    stat = notmuch_database_open ("./nonexistent/foo", 0, 0);
+    char *msg = NULL;
+    stat = notmuch_database_open_with_config ("./nonexistent/foo",
+                                            NOTMUCH_DATABASE_MODE_READ_ONLY,
+                                            "", NULL, &db, &msg);
+    if (msg) fputs (msg, stderr);
 }
 EOF
 cat <<'EOF' >EXPECTED
@@ -52,7 +60,10 @@ int main (int argc, char** argv)
 {
     notmuch_database_t *db;
     notmuch_status_t stat;
-    stat = notmuch_database_create ("./nonexistent/foo", &db);
+    char *msg = NULL;
+
+    stat = notmuch_database_create_with_config ("./nonexistent/foo", "", NULL, &db, &msg);
+    if (msg) fputs (msg, stderr);
 }
 EOF
 cat <<'EOF' >EXPECTED
@@ -70,13 +81,17 @@ int main (int argc, char** argv)
 {
     notmuch_database_t *db;
     notmuch_status_t stat;
-    stat = notmuch_database_open (argv[1], 0, 0);
+    char* msg = NULL;
+    stat = notmuch_database_open_with_config (argv[1],
+                                             NOTMUCH_DATABASE_MODE_READ_ONLY,
+                                             "", NULL, &db, &msg);
+    if (msg) fputs (msg, stderr);
 }
 EOF
 cat <<'EOF' >EXPECTED
 == stdout ==
 == stderr ==
-Error opening database at CWD/nonexistent/foo/.notmuch: No such file or directory
+Error: database path 'CWD/nonexistent/foo' does not exist or is not a directory.
 EOF
 test_expect_equal_file EXPECTED OUTPUT
 
@@ -87,13 +102,17 @@ test_C <<'EOF'
 int main (int argc, char** argv)
 {
     notmuch_status_t stat;
-    stat = notmuch_database_create (NULL, NULL);
+    char *msg = NULL;
+
+    stat = notmuch_database_create_with_config (NULL, "", NULL, NULL, &msg);
+    printf ("%s\n", notmuch_status_to_string (stat));
+    if (msg) fputs (msg, stderr);
 }
 EOF
 cat <<'EOF' >EXPECTED
 == stdout ==
+No mail root found
 == stderr ==
-Error: Cannot create a database for a NULL path.
 EOF
 test_expect_equal_file EXPECTED OUTPUT
 
@@ -105,13 +124,17 @@ int main (int argc, char** argv)
 {
     notmuch_database_t *db;
     notmuch_status_t stat;
-    stat = notmuch_database_create (argv[1], &db);
+    char *msg = NULL;
+
+    stat = notmuch_database_create_with_config (argv[1], "", NULL, &db, &msg);
+    printf ("%d\n", stat == NOTMUCH_STATUS_SUCCESS);
+    if (msg) fputs (msg, stderr);
 }
 EOF
 cat <<'EOF' >EXPECTED
 == stdout ==
+1
 == stderr ==
-Error: Cannot create database at CWD/nonexistent/foo: No such file or directory.
 EOF
 test_expect_equal_file EXPECTED OUTPUT
 
@@ -123,7 +146,11 @@ int main (int argc, char** argv)
 {
    notmuch_database_t *db;
    notmuch_status_t stat;
-   stat = notmuch_database_open (argv[1], NOTMUCH_DATABASE_MODE_READ_ONLY, &db);
+   char* msg = NULL;
+   stat = notmuch_database_open_with_config (argv[1],
+                                            NOTMUCH_DATABASE_MODE_READ_ONLY,
+                                            "", NULL, &db, &msg);
+   if (msg) fputs (msg, stderr);
    if (stat != NOTMUCH_STATUS_SUCCESS) {
      fprintf (stderr, "error opening database: %d\n", stat);
    }
@@ -148,7 +175,9 @@ int main (int argc, char** argv)
 {
    notmuch_database_t *db;
    notmuch_status_t stat;
-   stat = notmuch_database_open (argv[1], NOTMUCH_DATABASE_MODE_READ_WRITE, &db);
+   stat = notmuch_database_open_with_config (argv[1],
+                                            NOTMUCH_DATABASE_MODE_READ_WRITE,
+                                            "", NULL, &db, NULL);
    if (stat != NOTMUCH_STATUS_SUCCESS) {
      fprintf (stderr, "error opening database: %d\n", stat);
    }
@@ -206,13 +235,14 @@ int main (int argc, char** argv)
    char *msg = NULL;
    int fd;
 
-   stat = notmuch_database_open_verbose (argv[1], NOTMUCH_DATABASE_MODE_READ_WRITE, &db, &msg);
+   stat = notmuch_database_open_with_config (argv[1],
+                                            NOTMUCH_DATABASE_MODE_READ_WRITE,
+                                            NULL, NULL, &db, &msg);
    if (stat != NOTMUCH_STATUS_SUCCESS) {
      fprintf (stderr, "error opening database: %d %s\n", stat, msg ? msg : "");
      exit (1);
    }
-   path = talloc_asprintf (db, "%s/.notmuch/xapian/postlist.${db_ending}", argv[1]);
-   fd = open(path,O_WRONLY|O_TRUNC);
+   fd = open(argv[2],O_WRONLY|O_TRUNC);
    if (fd < 0) {
        fprintf (stderr, "error opening %s\n", argv[1]);
        exit (1);
@@ -228,9 +258,10 @@ cat <<'EOF' > c_tail
 }
 EOF
 
+POSTLIST_PATH=(${MAIL_DIR}/.notmuch/xapian/postlist.*)
 backup_database
 test_begin_subtest "Xapian exception finding message"
-cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR}
+cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR} ${POSTLIST_PATH}
    {
        notmuch_message_t *message = NULL;
        stat = notmuch_database_find_message (db, "id:nonexistent", &message);
@@ -245,27 +276,9 @@ EOF
 test_expect_equal_file EXPECTED OUTPUT.clean
 restore_database
 
-backup_database
-test_begin_subtest "Xapian exception getting tags"
-cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR}
-   {
-       notmuch_tags_t *tags = NULL;
-       tags = notmuch_database_get_all_tags (db);
-       stat = (tags == NULL);
-   }
-EOF
-sed 's/^\(A Xapian exception [^:]*\):.*$/\1/' < OUTPUT > OUTPUT.clean
-cat <<'EOF' >EXPECTED
-== stdout ==
-== stderr ==
-A Xapian exception occurred getting tags
-EOF
-test_expect_equal_file EXPECTED OUTPUT.clean
-restore_database
-
 backup_database
 test_begin_subtest "Xapian exception creating directory"
-cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR}
+cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR} ${POSTLIST_PATH}
    {
        notmuch_directory_t *directory = NULL;
        stat = notmuch_database_get_directory (db, "none/existing", &directory);
@@ -282,7 +295,7 @@ restore_database
 
 backup_database
 test_begin_subtest "Xapian exception searching messages"
-cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR}
+cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR} ${POSTLIST_PATH}
    {
        notmuch_messages_t *messages = NULL;
        notmuch_query_t *query=notmuch_query_create (db, "*");
@@ -301,7 +314,7 @@ restore_database
 
 backup_database
 test_begin_subtest "Xapian exception counting messages"
-cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR}
+cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR} ${POSTLIST_PATH}
    {
        int count;
        notmuch_query_t *query=notmuch_query_create (db, "id:87ocn0qh6d.fsf@yoom.home.cworth.org");
@@ -318,382 +331,4 @@ EOF
 test_expect_equal_file EXPECTED OUTPUT.clean
 restore_database
 
-cat <<EOF > c_head2
-#include <stdio.h>
-#include <notmuch.h>
-#include <notmuch-test.h>
-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);
-        stat = NOTMUCH_STATUS_XAPIAN_EXCEPTION;
-    }
-EOF
-cat <<EOF > EXPECTED
-== stdout ==
-1
-1
-== stderr ==
-A Xapian exception occurred at lib/message.cc:XXX: Database has been closed
-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);
-        stat = NOTMUCH_STATUS_XAPIAN_EXCEPTION;
-    }
-EOF
-cat <<EOF > EXPECTED
-== stdout ==
-1
-1
-== stderr ==
-A Xapian exception occurred at lib/message.cc:XXX: Database has been closed
-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);
-        stat = NOTMUCH_STATUS_XAPIAN_EXCEPTION;
-    }
-EOF
-cat <<EOF > EXPECTED
-== stdout ==
-1258471718-6781-1-git-send-email-dottedmag@dottedmag.net
-1
-== stderr ==
-A Xapian exception occurred at lib/message.cc:XXX: Database has been closed
-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);
-        stat = NOTMUCH_STATUS_XAPIAN_EXCEPTION;
-    }
-EOF
-cat <<EOF > 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);
-        stat = NOTMUCH_STATUS_XAPIAN_EXCEPTION;
-    }
-EOF
-cat <<EOF > EXPECTED
-== stdout ==
-1
-1
-== stderr ==
-A Xapian exception occurred at lib/message.cc:XXX: Database has been closed
-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);
-        stat = NOTMUCH_STATUS_XAPIAN_EXCEPTION;
-    }
-EOF
-cat <<EOF > EXPECTED
-== stdout ==
-1
-1
-== stderr ==
-A Xapian exception occurred at lib/message.cc:XXX: Database has been closed
-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);
-        stat = NOTMUCH_STATUS_XAPIAN_EXCEPTION;
-    }
-EOF
-cat <<EOF > EXPECTED
-== stdout ==
-1
-1
-== stderr ==
-A Xapian exception occurred at lib/message.cc:XXX: Database has been closed
-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);
-        stat = NOTMUCH_STATUS_XAPIAN_EXCEPTION;
-    }
-EOF
-cat <<EOF > EXPECTED
-== stdout ==
-1
-1
-== stderr ==
-A Xapian exception occurred at lib/message.cc:XXX: Database has been closed
-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);
-        stat = NOTMUCH_STATUS_XAPIAN_EXCEPTION;
-    }
-EOF
-cat <<EOF > EXPECTED
-== stdout ==
-1
-1
-== stderr ==
-A Xapian exception occurred at lib/message.cc:XXX: Database has been closed
-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);
-        stat = NOTMUCH_STATUS_XAPIAN_EXCEPTION;
-    }
-EOF
-cat <<EOF > EXPECTED
-== stdout ==
-1
-1
-== stderr ==
-A Xapian exception occurred at lib/message.cc:XXX: Database has been closed
-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}
-    {
-        stat = notmuch_message_add_tag (message, "boom");
-        printf("%d\n%d\n", message != NULL, stat == NOTMUCH_STATUS_XAPIAN_EXCEPTION);
-    }
-EOF
-cat <<EOF > EXPECTED
-== stdout ==
-1
-1
-== stderr ==
-A Xapian exception occurred at lib/message.cc:XXX: Database has been closed
-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}
-    {
-        stat = notmuch_message_remove_tag (message, "boom");
-        printf("%d\n%d\n", message != NULL, stat == NOTMUCH_STATUS_XAPIAN_EXCEPTION);
-    }
-EOF
-cat <<EOF > EXPECTED
-== stdout ==
-1
-1
-== stderr ==
-A Xapian exception occurred at lib/message.cc:XXX: Database has been closed
-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);
-        stat = NOTMUCH_STATUS_XAPIAN_EXCEPTION;
-    }
-EOF
-cat <<EOF > EXPECTED
-== stdout ==
-1
-1
-== stderr ==
-A Xapian exception occurred at lib/message.cc:XXX: Database has been closed
-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_bool_t out;
-        stat = notmuch_message_has_maildir_flag_st (message, 'S', &out);
-        printf("%d\n%d\n", message != NULL,  stat == NOTMUCH_STATUS_XAPIAN_EXCEPTION);
-    }
-EOF
-cat <<EOF > EXPECTED
-== stdout ==
-1
-1
-== stderr ==
-A Xapian exception occurred at lib/message.cc:XXX: Database has been closed
-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}
-    {
-        stat = notmuch_message_maildir_flags_to_tags (message);
-        printf("%d\n%d\n", message != NULL,  stat == NOTMUCH_STATUS_XAPIAN_EXCEPTION);
-    }
-EOF
-cat <<EOF > EXPECTED
-== stdout ==
-1
-1
-== stderr ==
-A Xapian exception occurred at lib/message.cc:XXX: Database has been closed
-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}
-    {
-        stat = notmuch_message_remove_all_tags (message);
-        printf("%d\n%d\n", message != NULL,  stat == NOTMUCH_STATUS_XAPIAN_EXCEPTION);
-    }
-EOF
-cat <<EOF > EXPECTED
-== stdout ==
-1
-1
-== stderr ==
-A Xapian exception occurred at lib/message.cc:XXX: Database has been closed
-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}
-    {
-        stat = notmuch_message_freeze (message);
-        printf("%d\n%d\n", message != NULL,  stat == NOTMUCH_STATUS_SUCCESS);
-    }
-EOF
-cat <<EOF > 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}
-    {
-        stat = notmuch_message_thaw (message);
-        printf("%d\n%d\n", message != NULL,  stat == NOTMUCH_STATUS_UNBALANCED_FREEZE_THAW);
-    }
-EOF
-cat <<EOF > 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 <<EOF > 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 <<EOF > 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}
-    {
-        stat = notmuch_message_reindex (message, NULL);
-        printf("%d\n%d\n", message != NULL,  stat == NOTMUCH_STATUS_XAPIAN_EXCEPTION);
-    }
-EOF
-cat <<EOF > EXPECTED
-== stdout ==
-1
-1
-== stderr ==
-A Xapian exception occurred at lib/message.cc:XXX: Database has been closed
-EOF
-test_expect_equal_file EXPECTED OUTPUT
-
 test_done