From: Joel Brobecker <brobecker@adacore.com>
To: gdb-patches@sourceware.org
Subject: [RFA/testsuite] Reset the timeout duration at the start of each testcase.
Date: Thu, 04 Feb 2010 06:08:00 -0000 [thread overview]
Message-ID: <1265263706-22569-1-git-send-email-brobecker@adacore.com> (raw)
In-Reply-To: <20100129153726.GC30542@caradoc.them.org>
Hello,
This is a followup on a suggestion made during a previous thread
(http://www.sourceware.org/ml/gdb-patches/2010-01/msg00630.html).
The idea is to systematically reset the timeout, in order to prevent
testcases that change its value without resetting it do not affect
subsequent testcases.
The suggestion was to find a per-start-of-exp-file hook, which I eventually
found: gdb_init is always called before running any .exp file. I should
say that I found this by reading the runtest.exp code rather than from
the reading the dejagnu documentation. But I'm pretty sure it's fine to
rely on this.
So the approach is to use a global variable called default_test_timeout.
The default is the same value as the timeout value set by runtest.exp.
The user is allowed to override that default by setting a new value in
a site.exp file.
In chronological order:
1. site.exp is read
2. gdb.exp is read
3. for each .exp testcase:
3.a: call gdb_init
3.b: run the .exp testcase
Based on this, I made two changes in gdb.exp:
* set default_test_timeout during gdb.exp evaluation if not already
overridden by the user (site.exp);
* update gdb_init to reset timeout to default_test_timeout.
I have tested this change by observing the value of the timeout variable
at the start of a couple of testcases in a variety of situations, and
it seems to work great.
gdb/testsuite/ChangeLog:
* lib/gdb.exp (default_test_timeout): New global variable.
Set it to timeout if not already set.
(gdb_init): Reset the value of timeout to default_test_timeout.
Also tested by running the entire testsuite on x86_64-linux. I'll look
at possible documentation if the patch gets in (we might decide to use
a different variable name for the default, for instance).
OK to apply?
Thanks,
--
Joel
---
gdb/testsuite/lib/gdb.exp | 15 +++++++++++++++
1 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index 9b06a2f..621fc3b 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -2410,7 +2410,22 @@ proc default_gdb_init { args } {
}
}
+# The default timeout used when testing GDB commands. We want to use
+# the same timeout as the default dejagnu timeout, unless the user has
+# already provided a specific value (probably through a site.exp file).
+global default_test_timeout
+if ![info exists default_test_timeout] {
+ set default_test_timeout $timeout
+}
+
proc gdb_init { args } {
+ # Reset the timeout value to the default. This way, any testcase
+ # that changes the timeout value without resetting it cannot affect
+ # the timeout used in subsequent testcases.
+ global default_test_timeout
+ global timeout
+ set timeout $default_test_timeout
+
return [eval default_gdb_init $args];
}
--
1.6.3.3
next prev parent reply other threads:[~2010-02-04 6:08 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-01-28 21:53 RFC: Fix testsuite timeout clobbers Daniel Jacobowitz
2010-01-29 4:00 ` Joel Brobecker
2010-01-29 15:37 ` Daniel Jacobowitz
2010-02-04 6:08 ` Joel Brobecker [this message]
2010-02-04 15:54 ` [RFA/testsuite] Reset the timeout duration at the start of each testcase Tom Tromey
2010-02-04 16:00 ` Daniel Jacobowitz
2010-02-04 17:43 ` Joel Brobecker
2010-02-04 18:16 ` Daniel Jacobowitz
2010-02-05 7:22 ` Joel Brobecker
2010-02-05 17:33 ` Daniel Jacobowitz
2010-02-08 11:36 ` Joel Brobecker
2010-02-04 6:13 ` RFC: Fix testsuite timeout clobbers Joel Brobecker
2010-01-29 16:49 ` Tom Tromey
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1265263706-22569-1-git-send-email-brobecker@adacore.com \
--to=brobecker@adacore.com \
--cc=gdb-patches@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox