Currently, there is only one such variable test_subtest_known_broken_. But more will be added in the future. --- test/test-lib.sh | 12 ++++++++---- 1 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/test/test-lib.sh b/test/test-lib.sh index 1ea7fa9..222b5e4 100755 --- a/test/test-lib.sh +++ b/test/test-lib.sh @@ -407,41 +407,41 @@ emacs_deliver_message () # number of messages. add_email_corpus () { rm -rf ${MAIL_DIR} if [ -d $TEST_DIRECTORY/corpus.mail ]; then cp -a $TEST_DIRECTORY/corpus.mail ${MAIL_DIR} else cp -a $TEST_DIRECTORY/corpus ${MAIL_DIR} notmuch new >/dev/null cp -a ${MAIL_DIR} $TEST_DIRECTORY/corpus.mail fi } test_begin_subtest () { if [ -n "$inside_subtest" ]; then exec 1>&6 2>&7 # Restore stdout and stderr 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) if test "$verbose" != "t"; then exec 4>test.output 3>&4; fi exec 6>&1 7>&2 >&3 2>&4 inside_subtest=t } # Pass test if two arguments match # # Note: Unlike all other test_expect_* functions, this function does # not accept a test name. Instead, the caller should call # test_begin_subtest before calling this function in order to set the # name. test_expect_equal () { exec 1>&6 2>&7 # Restore stdout and stderr inside_subtest= test "$#" = 3 && { prereq=$1; shift; } || prereq= test "$#" = 2 || @@ -559,84 +559,84 @@ test_ok_ () { test_failure_ () { if test "$test_subtest_known_broken_" = "t"; then test_known_broken_failure_ "$@" return fi test_failure=$(($test_failure + 1)) test_failure_message_ "FAIL" "$@" test "$immediate" = "" || { GIT_EXIT_OK=t; exit 1; } return 1 } test_failure_message_ () { say_color error "%-6s" "$1" echo " $2" shift 2 echo "$@" | sed -e 's/^/ /' if test "$verbose" != "t"; then cat test.output; fi } 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 } test_debug () { test "$debug" = "" || eval "$1" } test_run_ () { test_cleanup=: if test "$verbose" != "t"; then exec 4>test.output 3>&4; fi eval >&3 2>&4 "$1" eval_ret=$? eval >&3 2>&4 "$test_cleanup" return 0 } test_skip () { test_count=$(($test_count+1)) to_skip= for skp in $NOTMUCH_SKIP_TESTS do case $this_test.$test_count in $skp) to_skip=t esac done if test -z "$to_skip" && test -n "$prereq" && ! test_have_prereq "$prereq" then to_skip=t 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" : true ;; *) false ;; esac } test_subtest_known_broken () { test_subtest_known_broken_=t } test_expect_success () { test "$#" = 3 && { prereq=$1; shift; } || prereq= test "$#" = 2 || error "bug in the test script: not 2 or 3 parameters to test-expect-success" if ! test_skip "$@" @@ -842,40 +842,44 @@ test_emacs () { if [ -z "$EMACS_SERVER" ]; then EMACS_SERVER="notmuch-test-suite-$$" # 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.$$" \ sh -c "stty rows 24 cols 80; exec '$TMP_DIRECTORY/run_emacs' \ --no-window-system \ --eval '(setq server-name \"$EMACS_SERVER\")' \ --eval '(server-start)' \ --eval '(orphan-watchdog $$)'" || return # wait until the emacs server is up until test_emacs '()' 2>/dev/null; do sleep 1 done fi emacsclient --socket-name="$EMACS_SERVER" --eval "(progn $@)" } +test_reset_state_ () { + test_subtest_known_broken_= +} + find_notmuch_path () { dir="$1" while [ -n "$dir" ]; do bin="$dir/notmuch" if [ -x "$bin" ]; then echo "$dir" return fi dir="$(dirname "$dir")" if [ "$dir" = "/" ]; then break fi done } # Test the binaries we have just built. The tests are kept in # test/ subdirectory and are run in 'trash directory' subdirectory. -- 1.7.7.2 _______________________________________________ notmuch mailing list notmuch@notmuchmail.org http://notmuchmail.org/mailman/listinfo/notmuch