almost child_error
This commit is contained in:
+19
-4
@@ -290,6 +290,7 @@ function dump_failure {
|
||||
function save_err_trace_to_main {
|
||||
miaou_debug "<save_stacktrace_to_stderr count=${#error_source[@]} to=${MIAOU_BASH_ERROR_CHILDREN}>"
|
||||
local i source lineno funcname
|
||||
for i in "${tmp_error[@]}"; do >>"$MIAOU_BASH_ERROR_CHILDREN" echo "$i"; done
|
||||
for i in "${!error_source[@]}"; do
|
||||
source="${error_source[$i]}"
|
||||
lineno="${error_lineno[$i]}"
|
||||
@@ -297,7 +298,6 @@ function save_err_trace_to_main {
|
||||
miaou_debug "<trace source=${source} lineno=${lineno} funcname=${funcname}/>"
|
||||
>>"$MIAOU_BASH_ERROR_CHILDREN" echo -e "\tmiaou_trace: source=${source} lineno=${lineno} funcname=${funcname}"
|
||||
done
|
||||
for i in "${tmp_error[@]}"; do >>"$MIAOU_BASH_ERROR_CHILDREN" echo "$i"; done
|
||||
miaou_debug "</save_stacktrace_to_stderr>"
|
||||
}
|
||||
|
||||
@@ -347,10 +347,25 @@ function load_tmp_error {
|
||||
miaou_debug "<tmp_error empty/>"
|
||||
else
|
||||
miaou_debug "<tmp_error count=${count}>"
|
||||
local i
|
||||
for i in "${tmp_error[@]}"; do
|
||||
miaou_debug "<tmperr content={$i}/>"
|
||||
local i miaou_error_regex last_miaou_error_index=-1 content
|
||||
local multiple_errors=()
|
||||
miaou_error_regex='^(.*): line ([0-9]+): miaou_error:'
|
||||
for i in "${!tmp_error[@]}"; do
|
||||
content="${tmp_error[i]}"
|
||||
miaou_debug "<tmperr index=$i content={$content}/>"
|
||||
if [[ "$content" =~ $miaou_error_regex ]]; then
|
||||
if [[ $last_miaou_error_index -ge 0 ]]; then
|
||||
multiple_errors+=("$last_miaou_error_index")
|
||||
fi
|
||||
last_miaou_error_index=$i
|
||||
fi
|
||||
done
|
||||
if [[ "${#multiple_errors[@]}" -gt 0 ]]; then
|
||||
miaou_debug "multiple_errors = ${multiple_errors[*]}"
|
||||
for i in "${multiple_errors[@]}"; do unset "tmp_error[$i]"; done
|
||||
tmp_error=("${tmp_error[@]}")
|
||||
fi
|
||||
|
||||
miaou_debug "</tmp_error>"
|
||||
fi
|
||||
else
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
function library {
|
||||
echo library loaded
|
||||
>&2 echo stderr from library
|
||||
pwd
|
||||
# . "./test/stub/extra/onemore.bash"
|
||||
"./test/stub/extra/onemore.bash"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user