X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=test%2FT070-insert.sh;h=c2485bb2c2bd71bf0e1a51db5b9f833d03e018c6;hp=ea9db07e2fa24692bd7fed5bae11d6ebbcb678f4;hb=1d4812fd616dbabb11eed0f3718fa7827d69355f;hpb=2a865351dd44fea69a580978baf325353b13d4cb diff --git a/test/T070-insert.sh b/test/T070-insert.sh index ea9db07e..c2485bb2 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} @@ -23,7 +25,7 @@ test_expect_code 1 "Insert zero-length file" \ # This test is a proxy for other errors that may occur while trying to # add a message to the notmuch database, e.g. database locked. -test_expect_code 0 "Insert non-message" \ +test_expect_code 1 "Insert non-message" \ "echo bad_message | notmuch insert" test_begin_subtest "Database empty so far" @@ -183,4 +185,31 @@ test_expect_code 1 "Invalid tags set exit code" \ 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 PATH_ERROR; do +gen_insert_msg +cat < index-file-$code.gdb +set breakpoint pending on +set logging file index-file-$code.log +set logging on +break notmuch_database_add_message +commands +return NOTMUCH_STATUS_$code +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 + +test_begin_subtest "success exit with --keep when add_message returns $code" +gdb --batch-silent --return-child-result -x index-file-$code.gdb \ + --args notmuch insert --keep < $gen_msg_filename +test_expect_equal $? 0 +done + test_done