From: Pavel Roskin <proski@gnu.org>
To: Junio C Hamano <junkio@cox.net>
Cc: git@vger.kernel.org
Subject: Re: [PATCH] Trapping exit in tests, using return for errors
Date: Thu, 11 Aug 2005 12:00:40 -0400 [thread overview]
Message-ID: <1123776040.2326.6.camel@dv> (raw)
In-Reply-To: <7vvf2dm1b8.fsf@assigned-by-dhcp.cox.net>
Hi, Junio!
On Wed, 2005-08-10 at 23:31 -0700, Junio C Hamano wrote:
> Junio C Hamano <junkio@cox.net> writes:
>
> > Sorry, sent it out without finishing. The worst is "return".
>
> Ah, my mistake. You have the eval that can eval "return" in a
> function and let that "return" return from that function.
> Cleverly done.
I'm glad you appreciate it. One more fix on top of the last patch is
needed.
"return" from a test would leave the exit trap set, which could cause a
spurious error message if it's the last test in the script or
--immediate is used.
The easiest solution would be to have a global trap that is set when
test-lib.sh is sourced and unset either by test_done(), error() or by
test_failure_() with --immediate. This patch also depends on the patch
that adds test_done() the the scripts that don't have it.
Signed-off-by: Pavel Roskin <proski@gnu.org>
diff --git a/t/test-lib.sh b/t/test-lib.sh
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -36,6 +36,7 @@ unset SHA1_FILE_DIRECTORY
error () {
echo "* error: $*"
+ trap - exit
exit 1
}
@@ -74,6 +75,8 @@ fi
test_failure=0
test_count=0
+trap 'echo >&5 "FATAL: Unexpected exit with code $?"; exit 1' exit
+
# You are not expected to call test_ok_ and test_failure_ directly, use
# the text_expect_* functions instead.
@@ -89,7 +92,7 @@ test_failure_ () {
say "FAIL $test_count: $1"
shift
echo "$@" | sed -e 's/^/ /'
- test "$immediate" == "" || exit 1
+ test "$immediate" == "" || { trap - exit; exit 1; }
}
@@ -98,10 +101,8 @@ test_debug () {
}
test_run_ () {
- trap 'echo >&5 "FATAL: Unexpected exit with code $?"; exit 1' exit
eval >&3 2>&4 "$1"
eval_ret="$?"
- trap - exit
return 0
}
@@ -132,6 +133,7 @@ test_expect_success () {
}
test_done () {
+ trap - exit
case "$test_failure" in
0)
# We could:
--
Regards,
Pavel Roskin
prev parent reply other threads:[~2005-08-11 16:00 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-08-11 3:56 [PATCH] Trapping exit in tests, using return for errors Pavel Roskin
2005-08-11 6:06 ` Junio C Hamano
2005-08-11 6:22 ` Junio C Hamano
2005-08-11 6:31 ` Junio C Hamano
2005-08-11 16:00 ` Pavel Roskin [this message]
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1123776040.2326.6.camel@dv \
--to=proski@gnu.org \
--cc=git@vger.kernel.org \
--cc=junkio@cox.net \
/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.
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 NNTP newsgroup(s).