Merge branch 'jk/test-body-in-here-doc'
The test framework learned to take the test body not as a single string but as a here-document. * jk/test-body-in-here-doc: t/.gitattributes: ignore whitespace in chainlint expect files t: convert some here-doc test bodies test-lib: allow test snippets as here-docs chainlint.pl: add tests for test body in heredoc chainlint.pl: recognize test bodies defined via heredoc chainlint.pl: check line numbers in expected output chainlint.pl: force CRLF conversion when opening input files chainlint.pl: do not spawn more threads than we have scripts chainlint.pl: only start threads if jobs > 1 chainlint.pl: add test_expect_success call to test snippets
This commit is contained in:
@ -872,6 +872,24 @@ test_verify_prereq () {
|
||||
BUG "'$test_prereq' does not look like a prereq"
|
||||
}
|
||||
|
||||
# assign the variable named by "$1" with the contents of "$2";
|
||||
# if "$2" is "-", then read stdin into "$1" instead
|
||||
test_body_or_stdin () {
|
||||
if test "$2" != "-"
|
||||
then
|
||||
eval "$1=\$2"
|
||||
return
|
||||
fi
|
||||
|
||||
# start with a newline, to match hanging newline from open-quote style
|
||||
eval "$1=\$LF"
|
||||
local test_line
|
||||
while IFS= read -r test_line
|
||||
do
|
||||
eval "$1=\${$1}\${test_line}\${LF}"
|
||||
done
|
||||
}
|
||||
|
||||
test_expect_failure () {
|
||||
test_start_ "$@"
|
||||
test "$#" = 3 && { test_prereq=$1; shift; } || test_prereq=
|
||||
@ -881,9 +899,11 @@ test_expect_failure () {
|
||||
export test_prereq
|
||||
if ! test_skip "$@"
|
||||
then
|
||||
local test_body
|
||||
test_body_or_stdin test_body "$2"
|
||||
test -n "$test_skip_test_preamble" ||
|
||||
say >&3 "checking known breakage of $TEST_NUMBER.$test_count '$1': $2"
|
||||
if test_run_ "$2" expecting_failure
|
||||
say >&3 "checking known breakage of $TEST_NUMBER.$test_count '$1': $test_body"
|
||||
if test_run_ "$test_body" expecting_failure
|
||||
then
|
||||
test_known_broken_ok_ "$1"
|
||||
else
|
||||
@ -902,13 +922,15 @@ test_expect_success () {
|
||||
export test_prereq
|
||||
if ! test_skip "$@"
|
||||
then
|
||||
local test_body
|
||||
test_body_or_stdin test_body "$2"
|
||||
test -n "$test_skip_test_preamble" ||
|
||||
say >&3 "expecting success of $TEST_NUMBER.$test_count '$1': $2"
|
||||
if test_run_ "$2"
|
||||
say >&3 "expecting success of $TEST_NUMBER.$test_count '$1': $test_body"
|
||||
if test_run_ "$test_body"
|
||||
then
|
||||
test_ok_ "$1"
|
||||
else
|
||||
test_failure_ "$@"
|
||||
test_failure_ "$1" "$test_body"
|
||||
fi
|
||||
fi
|
||||
test_finish_
|
||||
|
Reference in New Issue
Block a user