Merge pull request #83 from inkarkat/testlib-parse-enh

Testlib parse enhancements
This commit is contained in:
Gina Trapani
2012-05-11 09:58:23 -07:00

View File

@@ -264,25 +264,7 @@ test_expect_success () {
test_expect_output () {
test "$#" = 2 ||
error "bug in the test script: not 2 parameters to test-expect-output"
if ! test_skip "$@"
then
say >&3 "expecting success and output: $2"
test_run_ "$2"
if [ "$?" = 0 -a "$eval_ret" = 0 ]
then
cmp_output=$(test_cmp expect output)
if [ "$?" = 0 ]
then
test_ok_ "$1"
else
test_failure_ "$@" "
$cmp_output"
fi
else
test_failure_ "$@"
fi
fi
echo >&3 ""
test_expect_code_and_output 0 "$@"
}
test_expect_code_and_output () {
@@ -290,7 +272,11 @@ test_expect_code_and_output () {
error "bug in the test script: not 3 parameters to test-expect-code-and-output"
if ! test_skip "$@"
then
say >&3 "expecting exit code $1 and output: $3"
if [ "$1" = 0 ]; then
say >&3 "expecting success and output: $3"
else
say >&3 "expecting exit code $1 and output: $3"
fi
test_run_ "$3"
if [ "$?" = 0 -a "$eval_ret" = "$1" ]
then
@@ -566,14 +552,16 @@ test_tick () {
}
# Generate and run a series of tests based on a transcript.
# Usage: test_todo_session "description" <<EOF
# Usage: test_todo_session "description" <<'EOF'
# >>> command
# output1
# output2
#
# >>> command
# === exit status
# output3
# output4
# output3 with empty line (must be escaped here)
# \
# output5
# EOF
test_todo_session () {
test "$#" = 1 ||
@@ -582,7 +570,7 @@ test_todo_session () {
cmd=""
status=0
> expect
while read -r line
while IFS= read -r line
do
case $line in
">>> "*)
@@ -606,6 +594,9 @@ test_todo_session () {
> expect
fi
;;
\\)
echo "" >> expect
;;
*)
echo "$line" >> expect
;;