diff options
Diffstat (limited to 'contrib/dg-extract-results.sh')
-rwxr-xr-x | contrib/dg-extract-results.sh | 51 |
1 files changed, 29 insertions, 22 deletions
diff --git a/contrib/dg-extract-results.sh b/contrib/dg-extract-results.sh index 86c4246dc929..97ac222b54a6 100755 --- a/contrib/dg-extract-results.sh +++ b/contrib/dg-extract-results.sh @@ -331,13 +331,15 @@ BEGIN { # Ugly hack for gfortran.dg/dg.exp if ("$TOOL" == "gfortran" && testname ~ /^gfortran.dg\/g77\//) testname="h"testname - if (\$1 == "WARNING:" && \$2 == "program" && \$3 == "timed" && (\$4 == "out" || \$4 == "out.")) { - has_timeout=1 - timeout_cnt=cnt - } else { - # Prepare timeout replacement message in case it's needed - timeout_msg=\$0 - sub(\$1, "WARNING:", timeout_msg) + if ("$MODE" == "sum") { + if (\$0 ~ /^WARNING: program timed out/) { + has_timeout=1 + timeout_cnt=cnt+1 + } else { + # Prepare timeout replacement message in case it's needed + timeout_msg=\$0 + sub(\$1, "WARNING:", timeout_msg) + } } } /^$/ { if ("$MODE" == "sum") next } @@ -345,25 +347,30 @@ BEGIN { if ("$MODE" == "sum") { # Do not print anything if the current line is a timeout if (has_timeout == 0) { - # If the previous line was a timeout, - # insert the full current message without keyword - if (timeout_cnt != 0) { - printf "%s %08d|%s program timed out.\n", testname, timeout_cnt, timeout_msg >> curfile - timeout_cnt = 0 - cnt = cnt + 1 - } - printf "%s %08d|", testname, cnt >> curfile - cnt = cnt + 1 - filewritten[curfile]=1 - need_close=1 - if (timeout_cnt == 0) - print >> curfile + # If the previous line was a timeout, + # insert the full current message without keyword + if (timeout_cnt != 0) { + printf "%s %08d|%s program timed out.\n", testname, timeout_cnt-1, timeout_msg >> curfile + timeout_cnt = 0 + cnt = cnt + 1 + } + printf "%s %08d|", testname, cnt >> curfile + cnt = cnt + 1 + filewritten[curfile]=1 + need_close=1 + print >> curfile } - has_timeout=0 + } else { + filewritten[curfile]=1 + need_close=1 + print >> curfile } - } else + } else { + has_timeout=0 + timeout_cnt=0 next + } } END { n=1 |