From: Pedro Alves <palves@redhat.com>
To: Andrew Burgess <andrew.burgess@embecosm.com>, gdb-patches@sourceware.org
Cc: "Maciej W. Rozycki" <macro@mips.com>
Subject: Re: [PATCH 3/3] gdb/testsuite: Handle targets with lots of registers
Date: Fri, 04 May 2018 12:47:00 -0000 [thread overview]
Message-ID: <0233be15-ab15-4877-1e49-7355d113afb7@redhat.com> (raw)
In-Reply-To: <20180504120124.GK3375@embecosm.com>
On 05/04/2018 01:01 PM, Andrew Burgess wrote:
> Thanks for the review feedback.
>
> I've updated the patch below inline with Pedro's feedback, and
> included a header check as requested by Maciej. I tested this on
> x86-64 and against RiscV which is the target that was originally
> causing me problems.
Thanks.
> # Test for a regression where this command would internal-error if the
> -# program wasn't running.
> -gdb_test "maint print registers" "Name.*Nr.*Rel.*Offset.*Size.*Type.*"
> +# program wasn't running. If there's a lot of registers then this
> +# might overflow expect's buffers, so process the output line at a
> +# time.
> +set saw_registers 0
> +set saw_headers 0
> +set test "maint print registers"
> +gdb_test_multiple $test $test {
> + -re "\[^\r\n\]+Name\[^\r\n\]+Nr\[^\r\n\]+Rel\[^\r\n\]+Offset\[^\r\n\]+Size\[^\r\n\]+Type\[^\r\n\]+\[\r\n\]+" {
> + set saw_headers 1
> + exp_continue
> + }
> + -re "^\[^\r\n\]+\[0-9\]+\[^\r\n\]+\[0-9\]+\[^\r\n\]+\[0-9\]+\[^\r\n\]+\[0-9\]+\[^\r\n\]+\[\r\n\]+" {
> + set saw_registers 1
> + exp_continue
> + }
> + -re "^\\*\[0-9\]+\[^\r\n\]+\[\r\n\]+" {
> + exp_continue
> + }
> + -re "$gdb_prompt $" {
> + gdb_assert $saw_registers "$test: saw some registers"
> + gdb_assert $saw_headers "$test: saw header line"
We try to avoid the potential for different FAIL / PASS
names/messages. I.e., if the test times out, or gdb crashes,
you'll get "FAIL: $test" only , while if it reaches the prompt,
you'll get two tests recorded in gdb.sum. The idea of matching
FAIL/PASS is to make it easier for scripts to distinguish
regressions/progressions vs new failures/passes. (Text in
trailing ()s, like " (timeout)" is considered informational, and
can/should be stripped for test-matching purposes). If you want to
record that the register and headers were seen, better put it in gdb.log,
with send_log or verbose -log, and do:
gdb_assert {$saw_registers && $saw_headers} $test
OK with that change.
Thanks,
Pedro Alves
next prev parent reply other threads:[~2018-05-04 12:47 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-09 15:15 [PATCH 0/3] Small testsuite updates Andrew Burgess
2018-04-09 15:15 ` [PATCH 3/3] gdb/testsuite: Handle targets with lots of registers Andrew Burgess
2018-04-12 23:40 ` Maciej W. Rozycki
2018-04-13 13:10 ` Pedro Alves
2018-04-13 13:57 ` Maciej W. Rozycki
2018-05-04 12:01 ` Andrew Burgess
2018-05-04 12:47 ` Pedro Alves [this message]
2018-04-09 15:15 ` [PATCH 1/3] gdb/testsuite: Fix broken regexp in gdbstub case Andrew Burgess
2018-04-13 12:12 ` Pedro Alves
2018-05-03 19:41 ` Andrew Burgess
2018-05-04 9:18 ` Pedro Alves
2018-04-09 15:15 ` [PATCH 2/3] gdb/testsuite: Filter out some registers for riscv Andrew Burgess
2018-04-09 21:28 ` Palmer Dabbelt
2018-04-09 22:26 ` Andrew Burgess
2018-04-10 20:25 ` Palmer Dabbelt
2018-04-13 12:55 ` Pedro Alves
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=0233be15-ab15-4877-1e49-7355d113afb7@redhat.com \
--to=palves@redhat.com \
--cc=andrew.burgess@embecosm.com \
--cc=gdb-patches@sourceware.org \
--cc=macro@mips.com \
/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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).