X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=test%2FT560-lib-error.sh;h=260ac1200a2daa0b7a1809076371959cd0ab8f4c;hp=4805368a5c9869407cdd5a75784055f48c3e9a1e;hb=HEAD;hpb=a2279c322e65ff26a136a2fb801a1d0670a45c69 diff --git a/test/T560-lib-error.sh b/test/T560-lib-error.sh index 4805368a..78cae1cd 100755 --- a/test/T560-lib-error.sh +++ b/test/T560-lib-error.sh @@ -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); @@ -275,14 +288,14 @@ sed 's/^\(A Xapian exception [^:]*\):.*$/\1/' < OUTPUT > OUTPUT.clean cat <<'EOF' >EXPECTED == stdout == == stderr == -A Xapian exception occurred creating a directory +A Xapian exception occurred finding/creating a directory EOF test_expect_equal_file EXPECTED OUTPUT.clean 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,347 +331,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_done