Commit f874089d by Christophe Lyon Committed by Christophe Lyon

contrib/dg-extract-results: Handle timeout warnings

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.

From-SVN: r268511
parent c8df72c4
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> 2019-01-01 Jakub Jelinek <jakub@redhat.com>
* update-copyright.py: Add Gerard Jungman as external author. * update-copyright.py: Add Gerard Jungman as external author.
......
...@@ -239,6 +239,7 @@ class Prog: ...@@ -239,6 +239,7 @@ class Prog:
harness = None harness = None
segment = None segment = None
final_using = 0 final_using = 0
has_warning = 0
# If this is the first run for this variation, add any text before # If this is the first run for this variation, add any text before
# the first harness to the header. # the first harness to the header.
...@@ -292,8 +293,20 @@ class Prog: ...@@ -292,8 +293,20 @@ class Prog:
# Ugly hack to get the right order for gfortran. # Ugly hack to get the right order for gfortran.
if name.startswith ('gfortran.dg/g77/'): if name.startswith ('gfortran.dg/g77/'):
name = 'h' + name name = 'h' + name
key = (name, len (harness.results)) # If we have a time out warning, make sure it appears
harness.results.append ((key, line)) # 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: if not first_key and sort_logs:
first_key = key first_key = key
if line.startswith ('ERROR: (DejaGnu)'): if line.startswith ('ERROR: (DejaGnu)'):
......
...@@ -298,6 +298,8 @@ BEGIN { ...@@ -298,6 +298,8 @@ BEGIN {
cnt=0 cnt=0
print_using=0 print_using=0
need_close=0 need_close=0
has_timeout=0
timeout_cnt=0
} }
/^EXPFILE: / { /^EXPFILE: / {
expfiles[expfileno] = \$2 expfiles[expfileno] = \$2
...@@ -329,16 +331,36 @@ BEGIN { ...@@ -329,16 +331,36 @@ BEGIN {
# Ugly hack for gfortran.dg/dg.exp # Ugly hack for gfortran.dg/dg.exp
if ("$TOOL" == "gfortran" && testname ~ /^gfortran.dg\/g77\//) if ("$TOOL" == "gfortran" && testname ~ /^gfortran.dg\/g77\//)
testname="h"testname 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 ("$MODE" == "sum") next }
{ if (variant == curvar && curfile) { { if (variant == curvar && curfile) {
if ("$MODE" == "sum") { if ("$MODE" == "sum") {
printf "%s %08d|", testname, cnt >> curfile # Do not print anything if the current line is a timeout
cnt = cnt + 1 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 } else
next next
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment