mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-25 12:28:09 +01:00
test: Detect unfinished subsets
When test_begin_subtest is not followed by corresponding test_expect_equal, the output of the rest of the test script is errornously suppressed. Add code to detect these bugs in test scripts.
This commit is contained in:
parent
f22a7ec1e2
commit
556986511c
1 changed files with 6 additions and 0 deletions
|
@ -396,12 +396,17 @@ add_email_corpus ()
|
||||||
|
|
||||||
test_begin_subtest ()
|
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_name="$1"
|
||||||
# Remember stdout and stderr file descriptios and redirect test
|
# Remember stdout and stderr file descriptios and redirect test
|
||||||
# output to the previously prepared file descriptors 3 and 4 (see
|
# output to the previously prepared file descriptors 3 and 4 (see
|
||||||
# bellow)
|
# bellow)
|
||||||
if test "$verbose" != "t"; then exec 4>test.output 3>&4; fi
|
if test "$verbose" != "t"; then exec 4>test.output 3>&4; fi
|
||||||
exec 6>&1 7>&2 >&3 2>&4
|
exec 6>&1 7>&2 >&3 2>&4
|
||||||
|
inside_subtest=t
|
||||||
}
|
}
|
||||||
|
|
||||||
# Pass test if two arguments match
|
# Pass test if two arguments match
|
||||||
|
@ -413,6 +418,7 @@ test_begin_subtest ()
|
||||||
test_expect_equal ()
|
test_expect_equal ()
|
||||||
{
|
{
|
||||||
exec 1>&6 2>&7 # Restore stdout and stderr
|
exec 1>&6 2>&7 # Restore stdout and stderr
|
||||||
|
inside_subtest=
|
||||||
test "$#" = 3 && { prereq=$1; shift; } || prereq=
|
test "$#" = 3 && { prereq=$1; shift; } || prereq=
|
||||||
test "$#" = 2 ||
|
test "$#" = 2 ||
|
||||||
error "bug in the test script: not 2 or 3 parameters to test_expect_equal"
|
error "bug in the test script: not 2 or 3 parameters to test_expect_equal"
|
||||||
|
|
Loading…
Reference in a new issue