From 7f40d4abde9da35f5ee3edf90b8bbd4696ace28f Mon Sep 17 00:00:00 2001 From: Dmitry Kurochkin Date: Thu, 17 Nov 2011 05:56:18 +0400 Subject: [PATCH] [PATCH 1/9] test: move subtest variables reset into a dedicated function --- 36/51c8ba0d077da309e2694909934b7db3b7b21b | 248 ++++++++++++++++++++++ 1 file changed, 248 insertions(+) create mode 100644 36/51c8ba0d077da309e2694909934b7db3b7b21b diff --git a/36/51c8ba0d077da309e2694909934b7db3b7b21b b/36/51c8ba0d077da309e2694909934b7db3b7b21b new file mode 100644 index 000000000..4841921aa --- /dev/null +++ b/36/51c8ba0d077da309e2694909934b7db3b7b21b @@ -0,0 +1,248 @@ +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 B6C9E431FD0 + for ; Wed, 16 Nov 2011 17:56:51 -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 KYGEgsLuqpvZ for ; + Wed, 16 Nov 2011 17:56:51 -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 DCCB1429E21 + for ; Wed, 16 Nov 2011 17:56:50 -0800 (PST) +Received: by mail-bw0-f53.google.com with SMTP id q10so1456807bka.26 + for ; Wed, 16 Nov 2011 17:56:50 -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=w853C5NxLyZz+XeDyDRD4SyWiA/yKqOOcfsvsg6pytZiYZpYIhiAZw9k8dkTw4KSYY + 3z0cAqJnZ6uL5mNuZ4IuHgvJV7kOhEJc/IZ9Q3tO2Os9JDjeCw9IiJhZD2mMF9Xuyt1L + vEvNxhH4BLPIP/evwO2GTa8PyIAZAspEmpCZc= +Received: by 10.205.131.3 with SMTP id ho3mr19583503bkc.11.1321495010584; + Wed, 16 Nov 2011 17:56:50 -0800 (PST) +Received: from localhost ([91.144.186.21]) + by mx.google.com with ESMTPS id q6sm40108848bka.6.2011.11.16.17.56.49 + (version=TLSv1/SSLv3 cipher=OTHER); + Wed, 16 Nov 2011 17:56:50 -0800 (PST) +From: Dmitry Kurochkin +To: notmuch@notmuchmail.org +Subject: [PATCH 1/9] test: move subtest variables reset into a dedicated + function +Date: Thu, 17 Nov 2011 05:56:18 +0400 +Message-Id: <1321494986-18998-2-git-send-email-dmitry.kurochkin@gmail.com> +X-Mailer: git-send-email 1.7.7.2 +In-Reply-To: <1321494986-18998-1-git-send-email-dmitry.kurochkin@gmail.com> +References: <1321494986-18998-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 01:56:51 -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 + -- 2.26.2