X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=test%2FT060-count.sh;h=4814670681165322d4769487991ef4f12542ea64;hb=fb4a0967cab7df737d5d53199a48a0e79c429b61;hp=da86c8cc70cf4a9f32669fd1b3472353f528d295;hpb=957fc2e1a7d00636c7eaaf487edae65e7a63dc8f;p=notmuch diff --git a/test/T060-count.sh b/test/T060-count.sh index da86c8cc..48146706 100755 --- a/test/T060-count.sh +++ b/test/T060-count.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash test_description='"notmuch count" for messages and threads' -. ./test-lib.sh +. $(dirname "$0")/test-lib.sh || exit 1 add_email_corpus @@ -93,5 +93,92 @@ notmuch count --output=messages >>EXPECTED notmuch count --output=messages tag:inbox >>EXPECTED test_expect_equal_file EXPECTED OUTPUT +backup_database +test_begin_subtest "error message for database open" +target=(${MAIL_DIR}/.notmuch/xapian/postlist.*) +dd if=/dev/zero of="$target" count=3 +notmuch count '*' 2>OUTPUT 1>/dev/null +output=$(sed 's/^\(A Xapian exception [^:]*\):.*$/\1/' OUTPUT) +test_expect_equal "${output}" "A Xapian exception occurred opening database" +restore_database + +make_shim qsm-shim< + +WRAP_DLFUNC (notmuch_status_t, notmuch_query_search_messages, (notmuch_query_t *query, notmuch_messages_t **messages)) + + /* XXX WARNING THIS CORRUPTS THE DATABASE */ + int fd = open ("target_postlist", O_WRONLY|O_TRUNC); + if (fd < 0) + exit (8); + close (fd); + + return notmuch_query_search_messages_orig(query, messages); +} +EOF + +backup_database +test_begin_subtest "error message from query_search_messages" +ln -s ${MAIL_DIR}/.notmuch/xapian/postlist.* target_postlist +notmuch_with_shim qsm-shim count --output=files '*' 2>OUTPUT 1>/dev/null +cat < EXPECTED +notmuch count: A Xapian exception occurred +A Xapian exception occurred performing query +Query string was: * +EOF +sed 's/^\(A Xapian exception [^:]*\):.*$/\1/' < OUTPUT > OUTPUT.clean +test_expect_equal_file EXPECTED OUTPUT.clean +restore_database + +test_begin_subtest "count library function is non-destructive" +cat< EXPECTED +1: 52 messages +2: 52 messages +Exclude 'spam' +3: 52 messages +4: 52 messages +EOF +test_python <