X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=test%2FT070-insert.sh;h=9120debabf8c3f6ffe07c6d2b74a5cc17f746698;hp=168345c9897b085de2399a09b824e8796604aa98;hb=13a59c4a8fc4ee418424e0b7ee4c8bbd5aae5da2;hpb=f5db7ad7d243785c274a99734c681e69d13313d0 diff --git a/test/T070-insert.sh b/test/T070-insert.sh index 168345c9..9120deba 100755 --- a/test/T070-insert.sh +++ b/test/T070-insert.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash test_description='"notmuch insert"' -. ./test-lib.sh +. ./test-lib.sh || exit 1 test_require_external_prereq gdb @@ -43,7 +43,7 @@ expected='[[[{ "id": "'"${gen_msg_id}"'", "match": true, "excluded": false, - "filename": "'"${cur_msg_filename}"'", + "filename": ["'"${cur_msg_filename}"'"], "timestamp": 946728000, "date_relative": "2000-01-01", "tags": ["inbox","unread"], @@ -60,7 +60,7 @@ test_expect_equal_json "$output" "$expected" test_begin_subtest "Insert duplicate message" notmuch insert +duptag -unread < "$gen_msg_filename" -output=$(notmuch search --output=files "subject:insert-subject" | wc -l) +output=$((`notmuch search --output=files "subject:insert-subject" | wc -l`)) test_expect_equal "$output" 2 test_begin_subtest "Duplicate message does not change tags" @@ -188,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 @@ -200,15 +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 - -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 + +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" \ + "${TEST_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" \ + "${TEST_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" \ + "${TEST_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" \ + "${TEST_GDB} --batch-silent --return-child-result \ + -ex 'set args insert --keep < $gen_msg_filename' \ + -x index-file-$code.gdb notmuch" done test_done