Add self-test framework to gdb
authorTom Tromey <tom@tromey.com>
Wed, 20 Apr 2016 16:09:53 +0000 (10:09 -0600)
committerTom Tromey <tom@tromey.com>
Tue, 17 May 2016 18:01:59 +0000 (12:01 -0600)
commitdcd1f97951b432032fd0728992b1384064663701
tree8625d7ab7df06b29febb949a96b2a18fe03c475a
parente4b8a1c839b88c345b82c37c90814a89c7f0c3c2
Add self-test framework to gdb

I wanted to unit test the Rust lexer, so I added a simple unit testing
command to gdb.

The intent is that self tests will only be compiled into gdb in
development mode.  In release mode they simply won't exist.  So, this
exposes $development to C code as GDB_SELF_TEST.

In development mode, test functions are registered with the self test
module.  A test function is just a function that does some checks, and
throws an exception on failure.

Then this adds a new "maint selftest" command which invokes the test
functions, and a new dejagnu test case that invokes it.

2016-05-17  Tom Tromey  <tom@tromey.com>

* NEWS: Add "maint selftest" entry.
* selftest.h: New file.
* selftest.c: New file.
* maint.c: Include selftest.h.
(maintenance_selftest): New function.
(_initialize_maint_cmds): Add "maint selftest" command.
* configure.ac (GDB_SELF_TEST): Maybe define.
* config.in, configure: Rebuild.
* Makefile.in (SFILES): Add selftest.c.
(COMMON_OBS): Add selftest.o.

2016-05-17  Tom Tromey  <tom@tromey.com>

* gdb.texinfo (Maintenance Commands): Document "maint selftest".

2016-05-17  Tom Tromey  <tom@tromey.com>

* gdb.gdb/unittest.exp: New file.
13 files changed:
gdb/ChangeLog
gdb/Makefile.in
gdb/NEWS
gdb/config.in
gdb/configure
gdb/configure.ac
gdb/doc/ChangeLog
gdb/doc/gdb.texinfo
gdb/maint.c
gdb/selftest.c [new file with mode: 0644]
gdb/selftest.h [new file with mode: 0644]
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.gdb/unittest.exp [new file with mode: 0644]