This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: i386.record.floating.point.patch : with more testing and assurity
- From: Michael Snyder <msnyder at vmware dot com>
- To: paawan oza <paawan1982 at yahoo dot com>
- Cc: "gdb-patches at sourceware dot org" <gdb-patches at sourceware dot org>, Pedro Alves <pedro at codesourcery dot com>, "teawater at gmail dot com" <teawater at gmail dot com>
- Date: Sat, 11 Jul 2009 16:25:08 -0700
- Subject: Re: i386.record.floating.point.patch : with more testing and assurity
- References: <736794.15455.qm@web112516.mail.gq1.yahoo.com>
paawan oza wrote:
Hi,
As I am submitting the patch for the first time, I am not much aware of gdb test suite.
would you please guide me about how I can put the things in the testsuite ?
is it the testsuite which comes along with the gdb source ?
gdb\testsuite\gdb.base ??
Regards,
Oza.
Hi Oza,
Yes, we are talking about the automated regression testsuite that
comes with the gdb source tree, at src/gdb/testsuite. You'll need
to be familiar with it, both to use it and to write tests.
All tests for the GNU tools are written in (are you ready for this)
* dejagnu, which is a layer written on top of
* expect, which is a language written on top of
* tcl.
There are many many tests already in the testsuite. Each consists of
1) one 'expect' script, such as
src/gdb/testsuite/gdb.base/break-always.exp
2) one or more source files, such as
src/gdb/testsuite/gdb.base/break-always.c
I chose that one as a relatively simple example for you to look at.
Each script
* compiles the corresponding source file,
* starts gdb, and
* runs a set of gdb commands.
The output of the commands is automatically compared to a set
of expected outputs (hence the name 'expect'), and if the output
matches the expected output the script will output "PASS".
Otherwise it will output "FAIL".
We use these test scripts regularly, both to validate new patches,
and to make sure that new changes haven't broken any old changes.
To run the gdb tests, you need to have installed
* dejagnu version 1.4.4
* expect version 5.42.1
* tcl at least version 8.4
With those installed, you should be able to do the following
in your build tree, with these results: then we'll talk about
writing tests. ;-)
bash-3.00$ cd gdb/testsuite
bash-3.00$ make check RUNTESTFLAGS=break-always.exp
[some noise]
=== gdb tests ===
Schedule of variations:
unix
Running target unix
Using /usr/share/dejagnu/baseboards/unix.exp as board description file
for target.
Using /usr/share/dejagnu/config/unix.exp as generic interface file for
target.
Using /data/home/msnyder/cvs/localhost/oza/gdb/testsuite/config/unix.exp
as tool-and-target-specific interface file.
Running
/data/home/msnyder/cvs/localhost/oza/gdb/testsuite/gdb.base/break-always.exp
...
=== gdb Summary ===
# of expected passes 4
/data/home/msnyder/builds/native/oza/gdb/testsuite/../../gdb/gdb version
6.8.50.20090711-cvs -nw -nx