This is the mail archive of the mailing list for the GDB project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: i386.record.floating.point.patch : with more testing and assurity

paawan oza wrote:
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 ??

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
  2) one or more source files, such as

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:

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 -nw -nx

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]