X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=test%2FT070-insert.sh;h=57472b913964e4ca0200de2cc5ccea5bb98253f5;hb=5de84d07526d330a46e50d955bdfeed8f629637d;hp=be8060e60364e5b6f1d63271f39307d78b01a462;hpb=dc20a0eedc80477c0db7b7dea9efef90860ec9fb;p=notmuch diff --git a/test/T070-insert.sh b/test/T070-insert.sh index be8060e6..57472b91 100755 --- a/test/T070-insert.sh +++ b/test/T070-insert.sh @@ -1,6 +1,8 @@ #!/usr/bin/env bash test_description='"notmuch insert"' -. ./test-lib.sh +. ./test-lib.sh || exit 1 + +test_require_external_prereq gdb # Create directories and database before inserting. mkdir -p "$MAIL_DIR"/{cur,new,tmp} @@ -186,11 +188,11 @@ notmuch config set new.tags $OLDCONFIG # DUPLICATE_MESSAGE_ID is not tested here, because it should actually pass. for code in OUT_OF_MEMORY XAPIAN_EXCEPTION FILE_NOT_EMAIL \ - READ_ONLY_DATABASE UPGRADE_REQUIRED; do -gen_insert_msg + READ_ONLY_DATABASE UPGRADE_REQUIRED PATH_ERROR; do cat < index-file-$code.gdb -file notmuch set breakpoint pending on +set logging file index-file-$code.log +set logging on break notmuch_database_add_message commands return NOTMUCH_STATUS_$code @@ -198,10 +200,30 @@ continue end run EOF -test_begin_subtest "error exit when add_message returns $code" -gdb --batch-silent --return-child-result -x index-file-$code.gdb \ - --args notmuch insert < $gen_msg_filename -test_expect_equal $? 1 +done + +gen_insert_msg + +for code in FILE_NOT_EMAIL READ_ONLY_DATABASE UPGRADE_REQUIRED PATH_ERROR; do + test_expect_code 1 "EXIT_FAILURE when add_message returns $code" \ + "gdb --batch-silent --return-child-result \ + -ex 'set args insert < $gen_msg_filename' \ + -x index-file-$code.gdb notmuch" + test_expect_code 0 "success exit with --keep when add_message returns $code" \ + "gdb --batch-silent --return-child-result \ + -ex 'set args insert --keep < $gen_msg_filename' \ + -x index-file-$code.gdb notmuch" +done + +for code in OUT_OF_MEMORY XAPIAN_EXCEPTION ; do + test_expect_code 75 "EX_TEMPFAIL when add_message returns $code" \ + "gdb --batch-silent --return-child-result \ + -ex 'set args insert < $gen_msg_filename' \ + -x index-file-$code.gdb notmuch" + test_expect_code 0 "success exit with --keep when add_message returns $code" \ + "gdb --batch-silent --return-child-result \ + -ex 'set args insert --keep < $gen_msg_filename' \ + -x index-file-$code.gdb notmuch" done test_done