From 36c4906045e2cdeed535227ed0824382fc9fc413 Mon Sep 17 00:00:00 2001 From: pvincent Date: Wed, 29 Jul 2026 00:12:35 +0400 Subject: [PATCH] poc.test.bash 1 --- test/poc.test.bash | 52 +++++++++++++++++----------------------------- 1 file changed, 19 insertions(+), 33 deletions(-) diff --git a/test/poc.test.bash b/test/poc.test.bash index b5e4488..f1b8562 100755 --- a/test/poc.test.bash +++ b/test/poc.test.bash @@ -19,38 +19,23 @@ function assert { function fail_type { ((TEST_COUNT++)) - local i line first error_start_above regex hint_message - hint_message="${3:-}" - mapfile -t stderr <<<"$(./test/stub/scenario.bash "$1" 2>&1 >/dev/null)" - # echo "stderr countains ${#stderr[@]}" - error_start_above=false + local success regex hint_message success=false - regex="║[[:blank:]]+([A-Z|_]+)" - for i in "${!stderr[@]}"; do - line=$(strip_ansi "${stderr[$i]}") - first="${line:1:1}" - [[ $first == ╔ ]] && error_start_above=true && continue - if [[ "$error_start_above" == true ]]; then - [[ $line =~ $regex ]] && [[ ${BASH_REMATCH[1]} == "$2" ]] && success=true - break - fi - done + hint_message="${3:-}" + mapfile -t stderr <<<"$(./poc ./test/stub/scenario.bash "$1" 2>&1 >/dev/null 3>/dev/null)" + last_error="${stderr[-1]}" - if [[ $success == true && -n "${hint_message}" ]]; then - success=false - regex="╟─⟶.*(\(.*\))$" - for j in $(seq "$((i + 1))" "$((${#stderr[@]} - 1))"); do - line=$(strip_ansi "${stderr[$j]}") - if [[ $line =~ $regex ]]; then - [[ "${BASH_REMATCH[1]}" == "${hint_message}" ]] && success=true - break - fi - done - fi + regex="^(.*): line ([0-9]+): miaou_error: $2 ([0-9]+) payload: (.*)\$" + [[ "${last_error}" =~ $regex ]] && success=true + + # if [[ $success == true && -n "${hint_message}" ]]; then + # : + # fi if [[ $success == true ]]; then ((SUCCESS_COUNT++)) + echo -n . else - echo "error in: $1" && return 1 + echo "F error in: $1" && return 1 fi } @@ -58,12 +43,13 @@ function fail_type { set -uo pipefail assert success -# fail_type subshell_term SUBSHELL_TERM -# fail_type unbound_variable UNBOUND_VARIABLE -# fail_type false FALSE -# fail_type return RETURN -# fail_type command_not_found COMMAND_NOT_FOUND -# fail_type exit EXIT +fail_type subshell_term SUBSHELL_ERROR +fail_type unbound_variable UNBOUND_VARIABLE +fail_type unbound_associative UNBOUND_VARIABLE +fail_type false FALSE +fail_type return RETURN +fail_type exit EXIT +fail_type command_not_found COMMAND_NOT_FOUND # fail_type source_not_found SOURCE_NOT_FOUND # fail_type file_not_found FILE_NOT_FOUND # fail_type subshell_error COMMAND_NOT_FOUND '(hint: prefer source than subshell)'