X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=test%2FT400-hooks.sh;h=49c690eb0360ab8c1b6e7f00059ea1c0da79b273;hp=77e8569b22a2cfa280791ee149b38e1f7dfb67ee;hb=6a9626a2fdddf6115bcf97982fd10053bf48e942;hpb=a755c9d6a9099366cc82ba3a4bee8e6d2b83d529 diff --git a/test/T400-hooks.sh b/test/T400-hooks.sh index 77e8569b..49c690eb 100755 --- a/test/T400-hooks.sh +++ b/test/T400-hooks.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash test_description='hooks' -. ./test-lib.sh +. $(dirname "$0")/test-lib.sh || exit 1 HOOK_DIR=${MAIL_DIR}/.notmuch/hooks @@ -30,6 +30,8 @@ rm_hooks () { # add a message to generate mail dir and database add_message +# create maildir structure for notmuch-insert +mkdir -p "$MAIL_DIR"/{cur,new,tmp} test_begin_subtest "pre-new is run" rm_hooks @@ -45,6 +47,13 @@ create_echo_hook "post-new" expected output notmuch new > /dev/null test_expect_equal_file expected output +test_begin_subtest "post-insert hook is run" +rm_hooks +generate_message +create_echo_hook "post-insert" expected output +notmuch insert < "$gen_msg_filename" +test_expect_equal_file expected output + test_begin_subtest "pre-new is run before post-new" rm_hooks generate_message @@ -61,7 +70,8 @@ output=`notmuch new 2>&1` test_expect_equal "$output" "Error: pre-new hook failed with status 13" # depends on the previous subtest leaving broken hook behind -test_expect_code 1 "pre-new non-zero exit status (notmuch status)" "notmuch new" +test_begin_subtest "pre-new non-zero exit status (notmuch status)" +test_expect_code 1 "notmuch new" # depends on the previous subtests leaving 1 new message behind test_begin_subtest "pre-new non-zero exit status aborts new" @@ -80,9 +90,16 @@ echo "Error: post-new hook failed with status 13" >> expected test_expect_equal_file expected output # depends on the previous subtest leaving broken hook behind -test_expect_code 1 "post-new non-zero exit status (notmuch status)" "notmuch new" +test_begin_subtest "post-new non-zero exit status (notmuch status)" +test_expect_code 1 "notmuch new" + +test_begin_subtest "post-insert hook does not affect insert status" +rm_hooks +generate_message +create_failing_hook "post-insert" +test_expect_success "notmuch insert < \"$gen_msg_filename\" > /dev/null" -# test_begin_subtest "hook without executable permissions" +test_begin_subtest "hook without executable permissions" rm_hooks mkdir -p ${HOOK_DIR} cat <"${HOOK_DIR}/pre-new" @@ -90,15 +107,15 @@ cat <"${HOOK_DIR}/pre-new" echo foo EOF output=`notmuch new 2>&1` -test_expect_code 1 "hook without executable permissions" "notmuch new" +test_expect_code 1 "notmuch new" -# test_begin_subtest "hook execution failure" +test_begin_subtest "hook execution failure" rm_hooks mkdir -p ${HOOK_DIR} cat <"${HOOK_DIR}/pre-new" no hashbang, execl fails EOF chmod +x "${HOOK_DIR}/pre-new" -test_expect_code 1 "hook execution failure" "notmuch new" +test_expect_code 1 "notmuch new" test_done