Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
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
> 


  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