How to run multiple target boards
Tom de Vries
tdevries@suse.de
Tue May 26 08:49:18 GMT 2020
[ was: Re: [committed][gdb/testsuite] Fix incorrect string concat in
jit-elf.exp ]
On 13-05-2020 15:45, Simon Marchi wrote:
> FWIW, I just learned it's possible to pass a list of target boards to --target_board:
>
> --target_board='unix native-gdbserver native-extended-gdbserver'
>
> And it gives a combined result at the end. So I'll make myself an alias to test on all
> the commonly used boards, probably:
>
> - cc-with-debug-names.exp
> - cc-with-dwz.exp
> - cc-with-dwz-m.exp
> - cc-with-gdb-index.exp
> - debug-types.exp
> - dwarf4-gdb-index.exp
> - fission-dwp.exp
> - fission.exp
> - native-extended-gdbserver.exp
> - native-gdbserver.exp
> - native-stdio-gdbserver.exp
> - readnow.exp
>
> When working on a single test, it's usually not to long to run them all. Of course, it's
> not really practical to run the complete testsuite twice (before and after) for each board
> for every change we do...
Hi Simon,
I just tried this out.
My test scripts use make check, but I didn't manage to make that work
yet, so I tried out using runtest directly (and I may be missing
something obvious, given that I haven't used this before):
...
$ cd build/gdb/testsuite
$ runtest gdb.base/gold-gdb-index.exp --target_board='cc-with-gdb-index
unix'
...
It seems however that the global settings (CC_FOR_TARGET etc) from the
first board stay active in the unix board:
...
Schedule of variations:
cc-with-gdb-index
unix
Running target cc-with-gdb-index
Using
/data/gdb_versions/devel/src/gdb/testsuite/boards/../boards/cc-with-gdb-index.exp
as board description file for target.
Using
/data/gdb_versions/devel/src/gdb/testsuite/boards/../boards/cc-with-tweaks.exp
as board description file for target.
Using
/data/gdb_versions/devel/src/gdb/testsuite/boards/../boards/local-board.exp
as board description file for target.
Using /usr/share/dejagnu/config/unix.exp as generic interface file for
target.
Using /data/gdb_versions/devel/src/gdb/testsuite/config/unix.exp as
tool-and-target-specific interface file.
Running
/data/gdb_versions/devel/src/gdb/testsuite/gdb.base/gold-gdb-index.exp ...
gdb compile failed, Error while writing index for
`/data/gdb_versions/devel/build/gdb/testsuite/outputs/gdb.base/gold-gdb-index/.tmp/gold-gdb-index':
Cannot use an index to create the index
=== gdb Summary for cc-with-gdb-index ===
# of untested testcases 1
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/gdb_versions/devel/src/gdb/testsuite/config/unix.exp as
tool-and-target-specific interface file.
Running
/data/gdb_versions/devel/src/gdb/testsuite/gdb.base/gold-gdb-index.exp ...
gdb compile failed, Error while writing index for
`/data/gdb_versions/devel/build/gdb/testsuite/outputs/gdb.base/gold-gdb-index/.tmp/gold-gdb-index':
Cannot use an index to create the index
=== gdb Summary for unix ===
# of untested testcases 1
=== gdb Summary ===
# of untested testcases 2
/data/gdb_versions/devel/build/gdb/gdb version 10.0.50.20200525-git -nw
-nx -data-directory
/data/gdb_versions/devel/build/gdb/testsuite/../data-directory -ex "set
sysroot"
...
I managed to make this work by unsetting some vars in base-config.exp:
...
$ cat gdb/testsuite/config/base-config.exp
if { [info exists CC_FOR_TARGET] } {
unset CC_FOR_TARGET
}
if { [info exists CXX_FOR_TARGET] } {
unset CXX_FOR_TARGET
}
...
after which I get:
...
=== gdb Summary ===
# of expected passes 4
# of untested testcases 1
...
I'm not sure yet if this is the proper way to fix this.
Thanks,
- Tom
More information about the Gdb-patches
mailing list