+2019-02-04 Christophe Lyon <christophe.lyon@linaro.org>
+
+ contrib/
+ * dg-extract-results.py: Keep timeout warnings next to their
+ matching test.
+ * dg-extract-results.sh: Likewise.
+
2019-01-01 Jakub Jelinek <jakub@redhat.com>
* update-copyright.py: Add Gerard Jungman as external author.
harness = None
segment = None
final_using = 0
+ has_warning = 0
# If this is the first run for this variation, add any text before
# the first harness to the header.
# Ugly hack to get the right order for gfortran.
if name.startswith ('gfortran.dg/g77/'):
name = 'h' + name
- key = (name, len (harness.results))
- harness.results.append ((key, line))
+ # 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.
+ if line.startswith ('WARNING: program timed out'):
+ has_warning = 1
+ else:
+ if has_warning == 1:
+ key = (name, len (harness.results))
+ myline = 'WARNING: %s program timed out.\n' % name
+ harness.results.append ((key, myline))
+ has_warning = 0
+ key = (name, len (harness.results))
+ harness.results.append ((key, line))
if not first_key and sort_logs:
first_key = key
if line.startswith ('ERROR: (DejaGnu)'):
cnt=0
print_using=0
need_close=0
+ has_timeout=0
+ timeout_cnt=0
}
/^EXPFILE: / {
expfiles[expfileno] = \$2
# 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") next }
{ if (variant == curvar && curfile) {
if ("$MODE" == "sum") {
- printf "%s %08d|", testname, cnt >> curfile
- cnt = cnt + 1
+ # 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
+ }
+ printf "%s %08d|", testname, cnt >> curfile
+ cnt = cnt + 1
+ filewritten[curfile]=1
+ need_close=1
+ if (timeout_cnt == 0)
+ print >> curfile
+ }
+
+ has_timeout=0
}
- filewritten[curfile]=1
- need_close=1
- print >> curfile
} else
next
}