@@ -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
@@ -296,7 +296,7 @@ class Prog:
# If we have a time out warning, make sure it appears
# before the following testcase diagnostic: we insert
# the testname before 'program' so that sort faces a
- # list of testhanes.
+ # list of testnames.
if line.startswith ('WARNING: program timed out'):
has_warning = 1
else: