Return-Path: X-Original-To: notmuch@notmuchmail.org Delivered-To: notmuch@notmuchmail.org Received: from localhost (localhost [127.0.0.1]) by olra.theworths.org (Postfix) with ESMTP id 1953C429E29 for ; Thu, 17 Nov 2011 05:06:29 -0800 (PST) X-Virus-Scanned: Debian amavisd-new at olra.theworths.org X-Spam-Flag: NO X-Spam-Score: -0.799 X-Spam-Level: X-Spam-Status: No, score=-0.799 tagged_above=-999 required=5 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=disabled Received: from olra.theworths.org ([127.0.0.1]) by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id UDG2OSOd438P for ; Thu, 17 Nov 2011 05:06:28 -0800 (PST) Received: from mail-bw0-f53.google.com (mail-bw0-f53.google.com [209.85.214.53]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by olra.theworths.org (Postfix) with ESMTPS id 1A2EC429E27 for ; Thu, 17 Nov 2011 05:06:27 -0800 (PST) Received: by bkaq10 with SMTP id q10so2108356bka.26 for ; Thu, 17 Nov 2011 05:06:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=from:to:subject:date:message-id:x-mailer:in-reply-to:references; bh=qHAItwn6YX98hjr7287H7ty64yyMlQ+UH4HMcVeAvWg=; b=gt+uNf41kVqjfAY++jJmC/9nwPRUDqvvoUjg0Zau4FvIjaxeW+I3t9w0AlwtOcvWIB b1jX365JKCwtmL7fEfjS2y3/uoKADsIPwe9FGouGkHNxadkrsG50RM6RZOMYhCoPsuJ3 ydWPXSKcXe/pBM4Xmj2Dm3RGI9ybd3ShvwMQ8= Received: by 10.204.148.75 with SMTP id o11mr33811874bkv.95.1321535186394; Thu, 17 Nov 2011 05:06:26 -0800 (PST) Received: from localhost ([91.144.186.21]) by mx.google.com with ESMTPS id dq2sm40613011bkb.11.2011.11.17.05.06.24 (version=TLSv1/SSLv3 cipher=OTHER); Thu, 17 Nov 2011 05:06:25 -0800 (PST) From: Dmitry Kurochkin To: notmuch@notmuchmail.org Subject: [PATCH v2 01/10] test: move subtest variables reset into a dedicated function Date: Thu, 17 Nov 2011 17:05:54 +0400 Message-Id: <1321535163-4895-2-git-send-email-dmitry.kurochkin@gmail.com> X-Mailer: git-send-email 1.7.7.2 In-Reply-To: <1321535163-4895-1-git-send-email-dmitry.kurochkin@gmail.com> References: <1321535163-4895-1-git-send-email-dmitry.kurochkin@gmail.com> X-BeenThere: notmuch@notmuchmail.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 17 Nov 2011 13:06:29 -0000 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