test-lib: Also check completion exit code.

The completion may unexpectedly abort somewhere.

Additionally, reformat the failure messages (don't prepend a "*", this should be reserved to mark the individual test runs) and use "compreply" instead of "output", so that it's already clear from the diff output that the completion is being tested.
This commit is contained in:
Ingo Karkat
2012-02-22 09:19:04 +01:00
parent c9d1993dc8
commit c1dcd0ed78

View File

@@ -305,7 +305,7 @@ $cmp_output"
else else
cmp_output=$(test_cmp expect output) cmp_output=$(test_cmp expect output)
test_failure_ "$2" "$3" " test_failure_ "$2" "$3" "
* expected exit code $1, actual ${eval_ret}${cmp_output:+ expected exit code $1, actual ${eval_ret}${cmp_output:+
}${cmp_output}" }${cmp_output}"
fi fi
fi fi
@@ -324,7 +324,7 @@ test_expect_code () {
test_ok_ "$2" test_ok_ "$2"
else else
test_failure_ "$2" "$3" " test_failure_ "$2" "$3" "
* expected exit code $1, actual ${eval_ret}" expected exit code $1, actual ${eval_ret}"
fi fi
fi fi
echo >&3 "" echo >&3 ""
@@ -658,24 +658,28 @@ test_todo_completion () {
source "$TEST_DIRECTORY/../todo_completion" source "$TEST_DIRECTORY/../todo_completion"
_todo _todo
ret=$?
IFS=$'\n' if [ "$ret" = 0 ]
printf "%s${EXPECT:+\\n}" "${EXPECT[*]}" > expect
printf "%s${COMPREPLY:+\\n}" "${COMPREPLY[*]}" > output
IFS=$SAVEIFS
if [ ${#COMPREPLY[@]} -eq ${#EXPECT[@]} ]
then then
if [ "${COMPREPLY[*]}" = "${EXPECT[*]}" ] IFS=$'\n'
printf "%s${EXPECT:+\\n}" "${EXPECT[*]}" > expect
printf "%s${COMPREPLY:+\\n}" "${COMPREPLY[*]}" > compreply
IFS=$SAVEIFS
if [ ${#COMPREPLY[@]} -eq ${#EXPECT[@]} ]
then then
test_ok_ "$description" if [ "${COMPREPLY[*]}" = "${EXPECT[*]}" ]
then
test_ok_ "$description"
else
test_failure_ "$description" "$(test_cmp expect compreply)"
fi
else else
test_failure_ "$description" "Differing completion(s): test_failure_ "$description" "expected ${#EXPECT[@]} completion(s), got ${#COMPREPLY[@]}:
$(test_cmp expect output)" $(test_cmp expect compreply)"
fi fi
else else
test_failure_ "$description" "Expected ${#EXPECT[@]} completion(s), got ${#COMPREPLY[@]}: test_failure_ "$description" "expected completions, actual exit code $ret"
$(test_cmp expect output)"
fi fi
fi fi
echo >&3 "" echo >&3 ""