X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;ds=sidebyside;f=test%2Ftest-lib.sh;h=0735b5c903f10bd325bdd7578fd27a2400a2ff4b;hb=1660ca5e619a02f430211ac0b26cfdc1ec23a717;hp=d88548b3838868146269dbdc2dcf1992ab04a22d;hpb=2f2ea8a49a9e56a1d7d8cfad8d2d109070b04bf7;p=notmuch diff --git a/test/test-lib.sh b/test/test-lib.sh old mode 100755 new mode 100644 index d88548b3..0735b5c9 --- a/test/test-lib.sh +++ b/test/test-lib.sh @@ -174,6 +174,7 @@ test_success=0 die () { code=$? + rm -rf "$TEST_TMPDIR" if test -n "$GIT_EXIT_OK" then exit $code @@ -184,6 +185,8 @@ die () { } GIT_EXIT_OK= +# Note: TEST_TMPDIR *NOT* exported! +TEST_TMPDIR=$(mktemp -d "${TMPDIR:-/tmp}/notmuch-test-$$.XXXXXX") trap 'die' EXIT test_decode_color () { @@ -394,7 +397,9 @@ emacs_deliver_message () (message-goto-body) (insert \"${body}\") $@ - (message-send-and-exit))" >/dev/null 2>&1 + (message-send-and-exit))" + # opportunistically quit smtp-dummy in case above fails. + { echo QUIT > /dev/tcp/localhost/25025; } 2>/dev/null wait ${smtp_dummy_pid} notmuch new >/dev/null } @@ -424,7 +429,7 @@ test_begin_subtest () error "bug in test script: Missing test_expect_equal in ${BASH_SOURCE[1]}:${BASH_LINENO[0]}" fi test_subtest_name="$1" - test_subtest_known_broken_= + test_reset_state_ # Remember stdout and stderr file descriptors and redirect test # output to the previously prepared file descriptors 3 and 4 (see # below) @@ -576,14 +581,14 @@ test_failure_message_ () { } test_known_broken_ok_ () { - test_subtest_known_broken_= + test_reset_state_ test_fixed=$(($test_fixed+1)) say_color pass "%-6s" "FIXED" echo " $@" } test_known_broken_failure_ () { - test_subtest_known_broken_= + test_reset_state_ test_broken=$(($test_broken+1)) test_failure_message_ "BROKEN" "$@" return 1 @@ -619,7 +624,7 @@ test_skip () { fi case "$to_skip" in t) - test_subtest_known_broken_= + test_reset_state_ say_color skip >&3 "skipping test: $@" say_color skip "%-6s" "SKIP" echo " $1" @@ -830,7 +835,7 @@ export NOTMUCH_CONFIG=$NOTMUCH_CONFIG # # --load Force loading of notmuch.el and test-lib.el -emacs --no-init-file --no-site-file \ +exec emacs --no-init-file --no-site-file \ --directory "$TEST_DIRECTORY/../emacs" --load notmuch.el \ --directory "$TEST_DIRECTORY" --load test-lib.el \ "\$@" @@ -844,7 +849,7 @@ test_emacs () { # start a detached session with an emacs server # user's TERM is given to dtach which assumes a minimally # VT100-compatible terminal -- and emacs inherits that - TERM=$ORIGINAL_TERM dtach -n "$TMP_DIRECTORY/emacs-dtach-socket.$$" \ + TERM=$ORIGINAL_TERM dtach -n "$TEST_TMPDIR/emacs-dtach-socket.$$" \ sh -c "stty rows 24 cols 80; exec '$TMP_DIRECTORY/run_emacs' \ --no-window-system \ --eval '(setq server-name \"$EMACS_SERVER\")' \ @@ -859,6 +864,10 @@ test_emacs () { emacsclient --socket-name="$EMACS_SERVER" --eval "(progn $@)" } +test_reset_state_ () { + test_subtest_known_broken_= +} + find_notmuch_path () {