From: Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
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 [thread overview]
Message-ID: <1321535163-4895-2-git-send-email-dmitry.kurochkin@gmail.com> (raw)
In-Reply-To: <1321535163-4895-1-git-send-email-dmitry.kurochkin@gmail.com>
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
next prev parent reply other threads:[~2011-11-17 13:06 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-17 13:05 [PATCH v2 00/10] test: (hopefully) better test prerequisites Dmitry Kurochkin
2011-11-17 13:05 ` Dmitry Kurochkin [this message]
2011-11-17 13:05 ` [PATCH v2 02/10] test: set EMACS_SERVER variable only after dtach(1) was successfully started Dmitry Kurochkin
2011-11-17 13:05 ` [PATCH v2 03/10] test: add test state reset to test_expect_* functions that did not have it Dmitry Kurochkin
2011-11-27 16:19 ` David Bremner
2011-11-27 18:36 ` [PATCH v3 00/7] test: (hopefully) better test prerequisites Dmitry Kurochkin
2011-11-27 18:36 ` [PATCH v3 1/7] test: add support for external executable dependencies Dmitry Kurochkin
2011-11-27 18:36 ` [PATCH v3 2/7] test: fix "skipping test" verbose output Dmitry Kurochkin
2011-11-27 18:36 ` [PATCH v3 3/7] test: skip all subtests if external dependencies are missing during init Dmitry Kurochkin
2011-11-27 18:36 ` [PATCH v3 4/7] test: declare external dependencies for the tests Dmitry Kurochkin
2011-11-27 18:36 ` [PATCH v3 5/7] test: add function to explicitly check for external dependencies Dmitry Kurochkin
2011-11-27 18:36 ` [PATCH v3 6/7] test: check if emacs is available in the beginning of test_emacs Dmitry Kurochkin
2011-11-27 18:36 ` [PATCH v3 7/7] test: fix "Stashing in notmuch-search" test when emacs is not available Dmitry Kurochkin
2011-11-28 7:31 ` [PATCH v3 00/7] test: (hopefully) better test prerequisites David Bremner
2012-01-12 17:14 ` Pieter Praet
2012-01-12 17:16 ` [PATCH] test: don't bail out of `run_emacs' too early when missing prereqs Pieter Praet
2012-01-12 17:34 ` Dmitry Kurochkin
2012-01-14 9:07 ` Pieter Praet
2012-01-14 9:09 ` Pieter Praet
2012-01-15 13:50 ` Dmitry Kurochkin
2012-01-16 2:44 ` David Bremner
2012-01-15 13:56 ` Dmitry Kurochkin
2012-01-16 10:40 ` Pieter Praet
2011-11-17 13:05 ` [PATCH v2 04/10] test: add support for external executable dependencies Dmitry Kurochkin
2011-11-17 13:05 ` [PATCH v2 05/10] test: fix "skipping test" verbose output Dmitry Kurochkin
2011-11-17 13:05 ` [PATCH v2 06/10] test: skip all subtests if external dependencies are missing during init Dmitry Kurochkin
2011-11-17 13:06 ` [PATCH v2 07/10] test: declare external dependencies for the tests Dmitry Kurochkin
2011-11-17 13:06 ` [PATCH v2 08/10] test: add function to explicitly check for external dependencies Dmitry Kurochkin
2011-11-17 13:06 ` [PATCH v2 09/10] test: check if emacs is available in the beginning of test_emacs Dmitry Kurochkin
2011-11-17 13:06 ` [PATCH v2 10/10] test: fix "Stashing in notmuch-search" test when emacs is not available Dmitry Kurochkin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://notmuchmail.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1321535163-4895-2-git-send-email-dmitry.kurochkin@gmail.com \
--to=dmitry.kurochkin@gmail.com \
--cc=notmuch@notmuchmail.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://yhetil.org/notmuch.git/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).