correct parse_stats.awk
This commit is contained in:
@@ -4,30 +4,25 @@ BEGIN {
|
||||
failed = 0
|
||||
}
|
||||
|
||||
/^┌───────────────┬──────────────────────────┐$/ {
|
||||
in_table = 1
|
||||
next
|
||||
}
|
||||
|
||||
in_table && /^│ Requests[[:space:]]+│/ {
|
||||
if (match($0, /[0-9]+ \([0-9]+ Passed, [0-9]+ Failed\)/)) {
|
||||
/Requests/ && /Passed/ && /Failed/ {
|
||||
# Ищем строку вида: │ Requests │ 11 (10 Passed, 1 Failed) │
|
||||
match($0, /[0-9]+ \([0-9]+ Passed, [0-9]+ Failed\)/)
|
||||
if (RSTART > 0) {
|
||||
s = substr($0, RSTART, RLENGTH)
|
||||
# Убираем скобки и лишние символы
|
||||
gsub(/[()]/, "", s)
|
||||
split(s, parts, /[[:space:],]+/)
|
||||
total = parts[1]
|
||||
passed = parts[2]
|
||||
failed = parts[4]
|
||||
in_table = 0
|
||||
}
|
||||
}
|
||||
|
||||
in_table && /^└───────────────┴──────────────────────────┘$/ {
|
||||
in_table = 0
|
||||
}
|
||||
|
||||
END {
|
||||
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
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user