diff options
author | Andrew Burgess <aburgess@redhat.com> | 2023-10-26 12:05:06 +0100 |
---|---|---|
committer | Andrew Burgess <aburgess@redhat.com> | 2023-11-28 10:36:43 +0000 |
commit | e5f1ee1832ff9e970833fa5773f46c3e0b93bc04 (patch) | |
tree | a078f8d3a2e89f5caca34b28060bdc6492c1cf88 /gdb/testsuite | |
parent | bcf90a927e797ae2a909580cbe39be21c2350880 (diff) | |
download | gdb-e5f1ee1832ff9e970833fa5773f46c3e0b93bc04.zip gdb-e5f1ee1832ff9e970833fa5773f46c3e0b93bc04.tar.gz gdb-e5f1ee1832ff9e970833fa5773f46c3e0b93bc04.tar.bz2 |
gdb/testsuite: add a new check-all-boards target
The make-check-all.sh script (gdb/testsuite/make-check-all.sh) is
great, it makes it super easy to run some test(s) using all the
available board files.
This commit aims to make this script even easier to access by adding a
check-all-boards target to the GDB Makefile. This new target checks
for (and requires) a number of environment variables, so the target
should be used like this:
make check-all-boards GDB_TARGET_USERNAME=remote-target \
GDB_HOST_USERNAME=remote-host \
TESTS="gdb.base/break.exp"
Where GDB_TARGET_USERNAME and GDB_HOST_USERNAME are the user names
that should be passed to the make-check-all.sh --target-user and
--host-user command line options respectively.
My personal intention is to set these variables in my environment, so
all I'll need to do is:
make check-all-boards TESTS="gdb.base/break.exp"
The make rule always passes --keep-results to the make-check-all.sh
script, as I find that the most useful. It's super frustrating to run
the tests and realise you forgot that option and the results have been
discarded.
Diffstat (limited to 'gdb/testsuite')
-rw-r--r-- | gdb/testsuite/Makefile.in | 19 | ||||
-rw-r--r-- | gdb/testsuite/README | 42 |
2 files changed, 61 insertions, 0 deletions
diff --git a/gdb/testsuite/Makefile.in b/gdb/testsuite/Makefile.in index 3fc9a90..3488e6a 100644 --- a/gdb/testsuite/Makefile.in +++ b/gdb/testsuite/Makefile.in @@ -368,6 +368,25 @@ check-perf: all $(abs_builddir)/site.exp @if test ! -d gdb.perf; then mkdir gdb.perf; fi $(DO_RUNTEST) --directory=gdb.perf --outdir gdb.perf GDB_PERFTEST_MODE=$(GDB_PERFTEST_MODE) $(RUNTESTFLAGS) $(TIMESTAMP) + +check-all-boards: all $(abs_builddir)/site.exp + @if [ -z "$(GDB_TARGET_USERNAME)" ]; then \ + echo "Must define GDB_TARGET_USERNAME"; \ + false; \ + fi + @if [ -z "$(GDB_HOST_USERNAME)" ]; then \ + echo "Must define GDB_HOST_USERNAME"; \ + false; \ + fi + @if [ -z "$(TESTS)" ]; then \ + echo "Must define TESTS"; \ + false; \ + fi + ${abs_srcdir}/make-check-all.sh --keep-results \ + --host-user "$(GDB_HOST_USERNAME)" \ + --target-user "$(GDB_TARGET_USERNAME)" \ + "$(TESTS)" + force:; clean mostlyclean: diff --git a/gdb/testsuite/README b/gdb/testsuite/README index 330a385..843d826 100644 --- a/gdb/testsuite/README +++ b/gdb/testsuite/README @@ -328,6 +328,48 @@ For example, to turn on gdbserver debugging, you can do: make check GDBSERVER_DEBUG="debug,replay" +GDB_TARGET_USERNAME +GDB_HOST_USERNAME + +These settings are only used with the check-all-boards target, and +should be the usernames of two separate users on the local machine, +both of which the current user can ssh to without a password. + +These users will be used by board files that simulate remote targets +by switching to a different user on the same machine. These users +will have random files copied into their $HOME directories, so it is a +good idea to setup new users just for this purpose. + +Testing All Simple Boards +************************* + +There are a number of boards that ship with GDB that simulate common +debug scenarios. For example by sshing to a different user on the +local machine and running gdbserver as this alternative user we aim to +simulate a true remote debug experience. + +There is a script binutils-gdb/gdb/testssuite/make-check-all.sh which +can be used to run a defined set of tests using all of the available +simple board files. Support for using this script is also included in +GDB's makefile, and can be used as: + + make check-all-boards GDB_TARGET_USERNAME=remote-target \ + GDB_HOST_USERNAME=remote-host \ + TESTS="gdb.base/break.exp" + +The 'remote-target' and 'remote-host' can be replaced with any user +names on the local machine, the only requirements are that the current +user must be able to ssh to these users without a password, and these +users must be happy to have arbitrary files copied into their $HOME +directory. Ideally, these users would be setup just for GDB testing. + +The check-all-boards target requires that TESTS be defined, though it +is fine to include multiple tests. + +The results are preserved, and can be found in the directory +gdb/testsuite/check-all/. The results are split by the board file +used. + Architecture-specific Parameters ****************************** |