X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=test%2FT560-lib-error.sh;h=9f5f7aefeea2e2c6fd44abc28c5e7ca29031840c;hp=67a5e8dfb6c6be9fc595fc286f2e5fc2152017dc;hb=b59ad1a9cc6ea03764b1cd3d038920581ac5a9c4;hpb=6a99505625785022d490207bdf6e3e29ed156c6a diff --git a/test/T560-lib-error.sh b/test/T560-lib-error.sh index 67a5e8df..9f5f7aef 100755 --- a/test/T560-lib-error.sh +++ b/test/T560-lib-error.sh @@ -35,7 +35,27 @@ Error: Cannot open a database for a NULL path. EOF test_expect_equal_file EXPECTED OUTPUT -test_begin_subtest "Open nonexistent database" +test_begin_subtest "Open relative path" +test_subtest_known_broken +test_C <<'EOF' +#include +#include +int main (int argc, char** argv) +{ + notmuch_database_t *db; + notmuch_status_t stat; + stat = notmuch_database_open ("./nonexistent/foo", 0, 0); +} +EOF +cat <<'EOF' >EXPECTED +== stdout == +== stderr == +Error: Database path must be absolute. +EOF +test_expect_equal_file EXPECTED OUTPUT + +test_begin_subtest "Create database in relative path" +test_subtest_known_broken test_C <<'EOF' #include #include @@ -43,13 +63,31 @@ int main (int argc, char** argv) { notmuch_database_t *db; notmuch_status_t stat; - stat = notmuch_database_open ("/nonexistent/foo", 0, 0); + stat = notmuch_database_create ("./nonexistent/foo", &db); +} +EOF +cat <<'EOF' >EXPECTED +== stdout == +== stderr == +Error: Database path must be absolute. +EOF +test_expect_equal_file EXPECTED OUTPUT + +test_begin_subtest "Open nonexistent database" +test_C ${PWD}/nonexistent/foo <<'EOF' +#include +#include +int main (int argc, char** argv) +{ + notmuch_database_t *db; + notmuch_status_t stat; + stat = notmuch_database_open (argv[1], 0, 0); } EOF cat <<'EOF' >EXPECTED == stdout == == stderr == -Error opening database at /nonexistent/foo/.notmuch: No such file or directory +Error opening database at CWD/nonexistent/foo/.notmuch: No such file or directory EOF test_expect_equal_file EXPECTED OUTPUT @@ -78,13 +116,13 @@ int main (int argc, char** argv) { notmuch_database_t *db; notmuch_status_t stat; - stat = notmuch_database_create ("/nonexistent/foo", &db); + stat = notmuch_database_create ("./nonexistent/foo", &db); } EOF cat <<'EOF' >EXPECTED == stdout == == stderr == -Error: Cannot create database at /nonexistent/foo: No such file or directory. +Error: Cannot create database at ./nonexistent/foo: No such file or directory. EOF test_expect_equal_file EXPECTED OUTPUT @@ -125,16 +163,17 @@ int main (int argc, char** argv) if (stat != NOTMUCH_STATUS_SUCCESS) { fprintf (stderr, "error opening database: %d\n", stat); } - stat = notmuch_database_add_message (db, "/nonexistent", NULL); - if (stat) - fputs (notmuch_database_status_string (db), stderr); - + stat = notmuch_database_add_message (db, "./nonexistent", NULL); + if (stat) { + char *status_string = notmuch_database_status_string (db); + if (status_string) fputs (status_string, stderr); + } } EOF cat <<'EOF' >EXPECTED == stdout == == stderr == -Error opening /nonexistent: No such file or directory +Error opening ./nonexistent: No such file or directory EOF test_expect_equal_file EXPECTED OUTPUT @@ -201,7 +240,7 @@ test_begin_subtest "Xapian exception finding message" cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR} { notmuch_message_t *message = NULL; - stat = notmuch_database_find_message (db, "id:nonexistant", &message); + stat = notmuch_database_find_message (db, "id:nonexistent", &message); } EOF sed 's/^\(A Xapian exception [^:]*\):.*$/\1/' < OUTPUT > OUTPUT.clean