From 9817730d7fd56e6838291d9bd5d45d297f18d799 Mon Sep 17 00:00:00 2001 From: pvincent Date: Fri, 24 Jul 2026 08:46:39 +0400 Subject: [PATCH] before fix empty failure_type on scenario return --- bin/miaou-bash | 56 +++++++++++++++------------------------ test/miaou-bash.test.bash | 2 +- 2 files changed, 23 insertions(+), 35 deletions(-) diff --git a/bin/miaou-bash b/bin/miaou-bash index 49cb937..8e0e8ce 100755 --- a/bin/miaou-bash +++ b/bin/miaou-bash @@ -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]' + if [[ $code -gt 0 ]]; then + stack_lines=("${BASH_LINENO[@]}") + stack_functions=("${FUNCNAME[@]}") + stack_sources=("${BASH_SOURCE[@]}") - # >/dev/tty echo "stack_functionsB ${#stack_functions[@]} ${stack_functions[@]}" - [[ "${#stack_functions[@]}" -gt 0 ]] && stack_functions[-1]='
' + unset 'stack_lines[-1]' + unset 'stack_lines[-1]' + unset 'stack_functions[0]' + unset 'stack_functions[-1]' - unset 'stack_sources[0]' - unset 'stack_sources[-1]' + [[ "${#stack_functions[@]}" -gt 0 ]] && stack_functions[-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 + unset 'stack_sources[0]' + unset 'stack_sources[-1]' - stack_lines=("${stack_lines[@]}") - stack_functions=("${stack_functions[@]}") - stack_sources=("${stack_sources[@]}") + 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 - failure_traces=() - failure_payload='' + stack_lines=("${stack_lines[@]}") + stack_functions=("${stack_functions[@]}") + stack_sources=("${stack_sources[@]}") - if [[ $code -gt 0 ]]; then + 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 } diff --git a/test/miaou-bash.test.bash b/test/miaou-bash.test.bash index c0cad8b..098a051 100755 --- a/test/miaou-bash.test.bash +++ b/test/miaou-bash.test.bash @@ -55,7 +55,7 @@ fail_type return RETURN failed=$((TEST_COUNT - SUCCESS_COUNT)) if [[ $failed -gt 0 ]]; then ratio=$((100 * SUCCESS_COUNT / TEST_COUNT)) - echo "${ratio}% passed, $failed test have failed!" + echo "${ratio}% passed, $SUCCESS_COUNT succeeded, $failed failed!" exit 1 else echo 100% passed!