before fix empty failure_type on scenario return

This commit is contained in:
pvincent
2026-07-24 08:46:39 +04:00
parent 259fad2925
commit 9817730d7f
2 changed files with 28 additions and 40 deletions
+27 -39
View File
@@ -48,38 +48,33 @@ function on_return {
function on_exit {
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
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_source=${stack_sources[0]}
@@ -165,7 +160,7 @@ function on_exit {
fi
fi
else
# failure_type='UNDEFINED'
failure_type='UNDEFINED'
miaou_debug "last error=${last_error}"
failure_payload="${last_error}"
regex="^ .*:[0-9]* .*\$"
@@ -185,10 +180,6 @@ function on_exit {
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
else
dump_success
@@ -267,9 +258,6 @@ function dump_failure {
miaou_debug '---stacktrace---'
>&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---'
cleanup
}