Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* [PATCH 0/1] [gdb/testsuite] Run test-case with all host/target boards
@ 2023-04-03 15:09 Tom de Vries via Gdb-patches
  2023-04-03 15:09 ` [PATCH 1/1] [gdb/contrib] Add make-check-all.sh Tom de Vries via Gdb-patches
  0 siblings, 1 reply; 9+ messages in thread
From: Tom de Vries via Gdb-patches @ 2023-04-03 15:09 UTC (permalink / raw)
  To: gdb-patches

Directory gdb/testsuite/boards contains a number of host/target boards, which
run a test-case (or test-cases) in a different way.

The benefits of using these boards are:
- improving test coverage of gdb,
- making the testsuite more robust, and
- making sure the test-cases work for non-native and remote setups.

Each board is slightly different, and developers need to learn how to use each
one, what parameters to pass and how, which ones can be using in combination
with each other.  This is a threshold to start using them.

And then there quite a few, so typically only a few will be used by each
developer (I think).

This patch makes it possible to run a test-case with all the boards, using a
single invocation.  The script is designed as a make check drop-in
replacement (though in the strictest sense it's not, because it doesn't use
RUNTESTFLAGS).

An example make check use is:
...
$ cd build/gdb/testsuite
$ make check RUNTESTFLAGS=gdb.base/advance.exp
  ...
                 === gdb Summary ===

 # of expected passes            8
 gdb version  14.0.50.20230403-git -nw -nx -iex "set height 0" \
   -iex "set width 0" -data-directory ./build/gdb/data-directory
...

And an example of make-check-all.sh for the same test-case is:
...
 $  ~/gdb/src/gdb/contrib/make-check-all.sh gdb.base/advance.exp
 LOCAL:
 # of expected passes            8
 TARGET BOARD: cc-with-gdb-index
 # of expected passes            8
 TARGET BOARD: cc-with-debug-names
 # of expected passes            8
 TARGET BOARD: cc-with-dwz
 # of expected passes            8
 TARGET BOARD: cc-with-dwz-m
 # of expected passes            8
 TARGET BOARD: cc-with-gnu-debuglink
 # of expected passes            8
 TARGET BOARD: debug-types
 # of expected passes            8
 TARGET BOARD: dwarf4-gdb-index
 # of expected passes            8
 TARGET BOARD: dwarf64
 # of untested testcases         1
 TARGET BOARD: fission
 # of expected passes            8
 TARGET BOARD: fission-dwp
 # of expected passes            8
 TARGET BOARD: gold
 # of expected passes            8
 TARGET BOARD: gold-gdb-index
 # of expected passes            8
 TARGET BOARD: readnow
 # of expected passes            8
 TARGET BOARD: stabs
 # of expected passes            8
 TARGET BOARD: native-extended-gdbserver
 # of expected passes            8
 TARGET BOARD: native-gdbserver
 # of expected passes            8
 TARGET BOARD: native-stdio-gdbserver
 # of expected passes            8
 TARGET BOARD: remote-gdbserver-on-localhost
 # of expected passes            8
 TARGET BOARD: remote-stdio-gdbserver
 # of expected passes            8
 HOST BOARD: local-remote-host, TARGET BOARD: remote-gdbserver-on-localhost
 # of expected passes            8
 HOST BOARD: local-remote-host, TARGET BOARD: remote-stdio-gdbserver
 # of expected passes            8
 HOST BOARD: local-remote-host-notty, TARGET BOARD: remote-gdbserver-on-localhost
 # of expected passes            8
 HOST BOARD: local-remote-host-notty, TARGET BOARD: remote-stdio-gdbserver
 # of expected passes            8
 HOST/TARGET BOARD: local-remote-host-native
 # of expected passes            8
...

Note that the dwarf64 board doesn't work, because my system compiler is gcc
7.5.0, which doesn't support -gdwarf64.

An annoying property of the remote host/target boards is that they dump
files into the home dir.  This problem can be worked around by using the
--host-user and --target-user switches, in combination with test accounts.

Using the test accounts has the additional benefit that it triggers more strict
checking of build/host/target file manipulations.

Tom de Vries (1):
  [gdb/contrib] Add make-check-all.sh

 gdb/contrib/make-check-all.sh | 255 ++++++++++++++++++++++++++++++++++
 1 file changed, 255 insertions(+)
 create mode 100755 gdb/contrib/make-check-all.sh


base-commit: 2e411b8c68eb2b035b31d5b00d940d4be1a0928b
-- 
2.35.3


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2023-04-21 15:41 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-04-03 15:09 [PATCH 0/1] [gdb/testsuite] Run test-case with all host/target boards Tom de Vries via Gdb-patches
2023-04-03 15:09 ` [PATCH 1/1] [gdb/contrib] Add make-check-all.sh Tom de Vries via Gdb-patches
2023-04-04 11:35   ` Andrew Burgess via Gdb-patches
2023-04-05  9:01     ` Tom de Vries via Gdb-patches
2023-04-18 12:43       ` Tom de Vries via Gdb-patches
2023-04-19 14:04         ` Simon Marchi via Gdb-patches
2023-04-20 11:43           ` Tom de Vries via Gdb-patches
2023-04-20 14:30             ` Simon Marchi via Gdb-patches
2023-04-21 15:41               ` Tom de Vries via Gdb-patches

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox