135 lines
2.2 KiB
Awk
Executable File
135 lines
2.2 KiB
Awk
Executable File
#!/usr/bin/awk -f
|
|
|
|
function clearvars () {
|
|
test = "";
|
|
cpu = "";
|
|
real = "";
|
|
codesize = "";
|
|
failed = 0;
|
|
crashed = 0;
|
|
runtime = 0;
|
|
}
|
|
|
|
function output () {
|
|
if (test != "") {
|
|
|
|
failure = "";
|
|
|
|
if ((crashed != 0) && (failed == 0)) {
|
|
failure = "crashed";
|
|
}
|
|
else if ((crashed == 0) && (failed != 0)) {
|
|
failure = "failed";
|
|
}
|
|
else if ((crashed != 0) && (failed != 0)) {
|
|
failure = "crashed-and-failed";
|
|
}
|
|
|
|
if (failure == "") {
|
|
printf "(%-10s %11s %11s %9s)\n", test, cpu, real, codesize;
|
|
}
|
|
else {
|
|
printf "(%-10s %10s)\n", test, failure;
|
|
}
|
|
}
|
|
clearvars();
|
|
}
|
|
|
|
BEGIN {
|
|
clearvars();
|
|
}
|
|
|
|
/^Testing/ {
|
|
output();
|
|
test=$2;
|
|
}
|
|
|
|
/^Running.../ {
|
|
runtime = 1;
|
|
}
|
|
|
|
runtime == 1 && $0 == "*** wrong result ***" {
|
|
failed = 1;
|
|
}
|
|
|
|
runtime == 1 && /^Command .* with non-zero/ {
|
|
crashed = 1;
|
|
}
|
|
|
|
runtime == 1 && /^Command terminated by signal/ {
|
|
crashed = 1;
|
|
}
|
|
|
|
runtime == 1 && /Abort trap/ {
|
|
crashed = 1;
|
|
}
|
|
|
|
runtime == 1 && /Error/ {
|
|
crashed = 1;
|
|
}
|
|
|
|
runtime == 1 && / === context ===/ {
|
|
crashed = 1;
|
|
}
|
|
|
|
|
|
runtime == 1 && /ERROR/ && $0 !~ /^FATAL-ERROR$/ && $0 !~ /^SCHEME-ERROR$/ && $0 !~ /^SLATEX-ERROR$/ {
|
|
crashed = 1;
|
|
}
|
|
|
|
runtime == 1 && /^[ ]*[0-9]+ ms cpu time \([0-9]+ user, [0-9]+ system\)$/ {
|
|
cpu = $1;
|
|
}
|
|
|
|
runtime == 1 && /^[ ]*[0-9]+ ms real time$/ {
|
|
real = $1;
|
|
}
|
|
|
|
runtime == 1 && /^cpu time: ([0-9]+) real time: ([0-9]+)/ {
|
|
cpu = $3;
|
|
real = $6;
|
|
}
|
|
|
|
runtime == 1 && /^[ ]*([0-9.]+) real [ ]*([0-9.]+) user [ ]*([0-9.]+) sys$/ {
|
|
cpu = ($3 + $5) * 1000;
|
|
real = $1 * 1000;
|
|
}
|
|
|
|
runtime == 1 && /[ ]*([0-9.]+)s real [ ]*([0-9.]+)s user [ ]*([0-9.]+)s sys/ {
|
|
real = $1 * 1000;
|
|
cpu = ($3 + $5) * 1000;
|
|
}
|
|
|
|
|
|
runtime == 1 && /^Elapsed time\.\.\.: ([0-9]+) ms/{
|
|
real = $3;
|
|
}
|
|
|
|
runtime == 1 && /\(User: ([0-9]+) ms; System: ([0-9]+) ms\)/{
|
|
user= $6;
|
|
sys=$9;
|
|
cpu = user+sys;
|
|
}
|
|
|
|
# runtime == 1 && /([0-9.]+)s real/{
|
|
# real= $1*1000;
|
|
# }
|
|
# runtime == 1 && /([0-9.]+)s user/{
|
|
# user = $1*1000;
|
|
# }
|
|
# runtime == 1 && /([0-9.]+)s system/{
|
|
# sys = $1*1000;
|
|
# }
|
|
# runtime == 1 && user && sys {
|
|
# cpu = user + sys;
|
|
# }
|
|
|
|
|
|
|
|
|
|
runtime == 1 && /^code size = [0-9]+$/ {
|
|
codesize = $4;
|
|
}
|
|
|
|
END { output() }
|