before fix empty failure_type on scenario return
This commit is contained in:
+27
-39
@@ -48,38 +48,33 @@ function on_return {
|
|||||||
function on_exit {
|
function on_exit {
|
||||||
code=${1:-0}
|
code=${1:-0}
|
||||||
|
|
||||||
stack_lines=("${BASH_LINENO[@]}")
|
|
||||||
stack_functions=("${FUNCNAME[@]}")
|
|
||||||
stack_sources=("${BASH_SOURCE[@]}")
|
|
||||||
|
|
||||||
# >/dev/tty echo "stack_functionsA ${#stack_functions[@]} ${stack_functions[@]}"
|
|
||||||
|
|
||||||
unset 'stack_lines[-1]'
|
|
||||||
unset 'stack_lines[-1]'
|
|
||||||
unset 'stack_functions[0]'
|
|
||||||
unset 'stack_functions[-1]'
|
|
||||||
|
|
||||||
# >/dev/tty echo "stack_functionsB ${#stack_functions[@]} ${stack_functions[@]}"
|
|
||||||
[[ "${#stack_functions[@]}" -gt 0 ]] && stack_functions[-1]='<main>'
|
|
||||||
|
|
||||||
unset 'stack_sources[0]'
|
|
||||||
unset 'stack_sources[-1]'
|
|
||||||
|
|
||||||
if [[ "${#stack_functions[@]}" -gt 1 && "${stack_functions[1]}" =~ exit|false && "${stack_sources[1]}" == "${BASH_SOURCE[0]}" ]]; then
|
|
||||||
# the exit or false case scenario
|
|
||||||
unset 'stack_functions[1]'
|
|
||||||
unset 'stack_sources[1]'
|
|
||||||
unset 'stack_lines[0]'
|
|
||||||
fi
|
|
||||||
|
|
||||||
stack_lines=("${stack_lines[@]}")
|
|
||||||
stack_functions=("${stack_functions[@]}")
|
|
||||||
stack_sources=("${stack_sources[@]}")
|
|
||||||
|
|
||||||
failure_traces=()
|
|
||||||
failure_payload=''
|
|
||||||
|
|
||||||
if [[ $code -gt 0 ]]; then
|
if [[ $code -gt 0 ]]; then
|
||||||
|
stack_lines=("${BASH_LINENO[@]}")
|
||||||
|
stack_functions=("${FUNCNAME[@]}")
|
||||||
|
stack_sources=("${BASH_SOURCE[@]}")
|
||||||
|
|
||||||
|
unset 'stack_lines[-1]'
|
||||||
|
unset 'stack_lines[-1]'
|
||||||
|
unset 'stack_functions[0]'
|
||||||
|
unset 'stack_functions[-1]'
|
||||||
|
|
||||||
|
[[ "${#stack_functions[@]}" -gt 0 ]] && stack_functions[-1]='<main>'
|
||||||
|
|
||||||
|
unset 'stack_sources[0]'
|
||||||
|
unset 'stack_sources[-1]'
|
||||||
|
|
||||||
|
if [[ "${#stack_functions[@]}" -gt 1 && "${stack_functions[1]}" =~ exit|false && "${stack_sources[1]}" == "${BASH_SOURCE[0]}" ]]; then
|
||||||
|
# the exit or false case scenario
|
||||||
|
unset 'stack_functions[1]'
|
||||||
|
unset 'stack_sources[1]'
|
||||||
|
unset 'stack_lines[0]'
|
||||||
|
fi
|
||||||
|
|
||||||
|
stack_lines=("${stack_lines[@]}")
|
||||||
|
stack_functions=("${stack_functions[@]}")
|
||||||
|
stack_sources=("${stack_sources[@]}")
|
||||||
|
|
||||||
|
failure_payload=''
|
||||||
|
|
||||||
last_error=$(tail -n1 "$MIAOU_BASH_ERROR")
|
last_error=$(tail -n1 "$MIAOU_BASH_ERROR")
|
||||||
last_source=${stack_sources[0]}
|
last_source=${stack_sources[0]}
|
||||||
@@ -165,7 +160,7 @@ function on_exit {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
# failure_type='UNDEFINED'
|
failure_type='UNDEFINED'
|
||||||
miaou_debug "last error=${last_error}"
|
miaou_debug "last error=${last_error}"
|
||||||
failure_payload="${last_error}"
|
failure_payload="${last_error}"
|
||||||
regex="^ .*:[0-9]* .*\$"
|
regex="^ .*:[0-9]* .*\$"
|
||||||
@@ -185,10 +180,6 @@ function on_exit {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
for i in "${!stack_functions[@]}"; do
|
|
||||||
stack_detail=$(printf "\t%40s\t%s\n" "${stack_sources[$i]}:${stack_lines[$i]}" "${stack_functions[$i]}")
|
|
||||||
failure_traces+=("$stack_detail")
|
|
||||||
done
|
|
||||||
dump_failure
|
dump_failure
|
||||||
else
|
else
|
||||||
dump_success
|
dump_success
|
||||||
@@ -267,9 +258,6 @@ function dump_failure {
|
|||||||
miaou_debug '---stacktrace---'
|
miaou_debug '---stacktrace---'
|
||||||
>&4 ansi_traces stack_sources stack_lines stack_functions
|
>&4 ansi_traces stack_sources stack_lines stack_functions
|
||||||
|
|
||||||
# for i in "${failure_traces[@]}"; do
|
|
||||||
# >&4 echo -e "$i"
|
|
||||||
# done
|
|
||||||
miaou_debug '---end of stacktrace---'
|
miaou_debug '---end of stacktrace---'
|
||||||
cleanup
|
cleanup
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ fail_type return RETURN
|
|||||||
failed=$((TEST_COUNT - SUCCESS_COUNT))
|
failed=$((TEST_COUNT - SUCCESS_COUNT))
|
||||||
if [[ $failed -gt 0 ]]; then
|
if [[ $failed -gt 0 ]]; then
|
||||||
ratio=$((100 * SUCCESS_COUNT / TEST_COUNT))
|
ratio=$((100 * SUCCESS_COUNT / TEST_COUNT))
|
||||||
echo "${ratio}% passed, $failed test have failed!"
|
echo "${ratio}% passed, $SUCCESS_COUNT succeeded, $failed failed!"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
echo 100% passed!
|
echo 100% passed!
|
||||||
|
|||||||
Reference in New Issue
Block a user