correct parse_stats.awk

This commit is contained in:
AlexB1960
2026-09-01 10:39:02 +03:00
parent b24e96bcd2
commit 63ea9002d2

View File

@@ -4,30 +4,25 @@ BEGIN {
failed = 0 failed = 0
} }
/^┌───────────────┬──────────────────────────┐$/ { /Requests/ && /Passed/ && /Failed/ {
in_table = 1 # Ищем строку вида: │ Requests │ 11 (10 Passed, 1 Failed) │
next match($0, /[0-9]+ \([0-9]+ Passed, [0-9]+ Failed\)/)
} if (RSTART > 0) {
in_table && /^│ Requests[[:space:]]+│/ {
if (match($0, /[0-9]+ \([0-9]+ Passed, [0-9]+ Failed\)/)) {
s = substr($0, RSTART, RLENGTH) s = substr($0, RSTART, RLENGTH)
# Убираем скобки и лишние символы
gsub(/[()]/, "", s) gsub(/[()]/, "", s)
split(s, parts, /[[:space:],]+/) split(s, parts, /[[:space:],]+/)
total = parts[1] total = parts[1]
passed = parts[2] passed = parts[2]
failed = parts[4] failed = parts[4]
in_table = 0
} }
} }
in_table && /^└───────────────┴──────────────────────────┘$/ {
in_table = 0
}
END { END {
if (total == 0) { if (total == 0) {
print "WARNING: Could not parse stats from logs.txt" > "/dev/stderr" # Если не нашли статистику — выводим нули
printf "Total=0, Passed=0, Failed=0\n"
} else {
printf "Total=%d, Passed=%d, Failed=%d\n", total, passed, failed
} }
printf "Total=%d, Passed=%d, Failed=%d\n", total, passed, failed }
}