From: Tom de Vries <tdevries@suse.de>
To: Pedro Alves <palves@redhat.com>,
Simon Marchi <simon.marchi@polymtl.ca>,
"gdb-patches@sourceware.org" <gdb-patches@sourceware.org>
Subject: Re: How to run multiple target boards
Date: Tue, 26 May 2020 12:56:43 +0200 [thread overview]
Message-ID: <a4d899aa-3dc3-5709-9fd9-c956eca0296a@suse.de> (raw)
In-Reply-To: <3319bd1f-a39f-1bf0-f291-e166edb2ab97@redhat.com>
On 26-05-2020 12:39, Pedro Alves wrote:
> On 5/26/20 9:49 AM, Tom de Vries wrote:
>> [ 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
>
> What are the advantages of doing this compared to a script that runs the
> testsuite for each of the boards, separately?
>
I'd say:
- the target boards not overwriting the .log and .sum files of other
target boards
- the joint summary.
Thanks,
- Tom
>>>
>>> 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'
>> ...
>
> One issue this with that I've run into in the past, is with global
> variables leaking from one board to the other.
>
> And I've just tried a quick test, and lucky me I seem to have run into
> something like that immediately:
>
> $ make check RUNTESTFLAGS="--target_board='native-gdbserver unix' break.exp"
> ...
> Schedule of variations:
> native-gdbserver
> unix
> ...
> FAIL: gdb.base/break.exp: run until function breakpoint
> FAIL: gdb.base/break.exp: run until breakpoint set at a line number (the program is no longer running)
> FAIL: gdb.base/break.exp: run until file:function(6) breakpoint (the program is no longer running)
> FAIL: gdb.base/break.exp: run until file:function(5) breakpoint (the program is no longer running)
> (snip a bunch more)
>
> (Running break.exp for each board in isolation passes cleanly, of course.)
>
> Another thing is that the test messages in gdb.sum don't indicate which
> board issued the PASS/FAIL (on each result), making it more difficult
> to analyze.
>
>>
>> It seems however that the global settings (CC_FOR_TARGET etc) from the
>> first board stay active in the unix board:
>
> Yeah, things like that.
>
> Also, the tests for all boards end up under the same testsuite/outputs/ directory,
> so whatever the last board was, wins. I'm not even sure how the testsuite
> caching works when you run more than one board in parallel mode.
>
> It would seem to me that if you're looking at running tests against different
> boards, that you would want the output directories to be separate, so you can
> analyze the results afterwards, avoid cache issues, etc.
>
> Maybe it would be better to come up with our own way to do this, without
> relying on dejagnu directly. Much like we have the TESTS variable,
> we could have a BOARDS variable:
>
> make check TESTS="gdb.base/break.exp" BOARDS="native-gdbserver unix"
>
> and then the outputs foreach board would be in
> "testsuite/outputs.native-gdbserver/" and "testsuite/outputs.unix/"
> respectively.
>
> Thanks,
> Pedro Alves
>
next prev parent reply other threads:[~2020-05-26 10:56 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-12 13:00 [committed][gdb/testsuite] Fix incorrect string concat in jit-elf.exp Tom de Vries
2020-05-12 14:14 ` Simon Marchi
2020-05-12 14:37 ` Strasuns, Mihails
2020-05-13 8:52 ` Tom de Vries
2020-05-13 13:45 ` Simon Marchi
2020-05-26 8:49 ` How to run multiple target boards Tom de Vries
2020-05-26 10:39 ` Pedro Alves
2020-05-26 10:56 ` Tom de Vries [this message]
2020-05-26 20:38 ` Simon Marchi
2020-05-13 8:44 ` [committed][gdb/testsuite] Fix incorrect string concat in jit-elf.exp Tom de Vries
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=a4d899aa-3dc3-5709-9fd9-c956eca0296a@suse.de \
--to=tdevries@suse.de \
--cc=gdb-patches@sourceware.org \
--cc=palves@redhat.com \
--cc=simon.marchi@polymtl.ca \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox