correct parse_stats.awk
This commit is contained in:
@@ -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
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user