# scripts/lib/render-timing.awk # Render a per-test timing HTML report from sorted TSV rows. # Input TSV (already sorted slowest-first): "\t\t". # Variables: -v TITLE="..." function esc(s) { gsub(/&/, "\\&", s); gsub(//, "\\>", s) return s } BEGIN { FS = "\t"; n = 0; total = 0 } { n++ sec[n] = $1 + 0 suite[n] = $2 name[n] = $3 total += $1 + 0 if (n == 1) maxv = $1 + 0 } END { print "" print "" esc(TITLE) "" print "" print "

" esc(TITLE) "

" printf "
%d tests · %.3f s total
\n", n, total print "" for (i = 1; i <= n; i++) { w = (maxv > 0 ? (sec[i] * 100.0 / maxv) : 0) printf "", i, sec[i], esc(name[i]) printf "\n", w } print "
#secondstest
%d%.3f%s
" }