Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Pedro Alves <palves@redhat.com>
To: Tom de Vries <tdevries@suse.de>, gdb-patches@sourceware.org
Subject: Re: [RFC][gdb/testsuite] Add -lbl option in gdb_test_multiple
Date: Thu, 27 Feb 2020 16:03:00 -0000	[thread overview]
Message-ID: <946e4070-8328-3ff1-eb45-1532a8782acd@redhat.com> (raw)
In-Reply-To: <80d69419-60df-8308-9587-295a86c5041b@suse.de>

On 2/21/20 3:35 PM, Tom de Vries wrote:

> I think we don't want to integrate -lbl in the user_code parsing, because:
> ...
> gdb_test_multiple "command" "testname" {
> 	-re "bla" {
> 	}
> 	-lbl
> }
> ...
> and:
> ...
> gdb_test_multiple "command" "testname" {
> 	-lbl
> 	-re "bla" {
> 	}
> }
> ...
> will have the same effect, which is likely to cause confusion.

Well:

 gdb_test_multiple "command" "testname" {
	-re "bar" {
	}
	-timeout 60
 }

and:

 gdb_test_multiple "command" "testname" {
	-timeout 60
	-re "bla" {
	}
 }

also have the same effect.  So there's precedent and it goes
all the way back to expect.

> [gdb/testsuite] Add -lbl option in gdb_test_multiple
> 
> Add gdb_test_multiple option -lbl, that adds a regexp after the user code that
> reads one line, and discards it:
> ...
>            -re "\r\n\[^\r\n\]*(?=\r\n)" {
>                exp_continue
>            }
> ...
> 
> In order to be able to write:
> ...
> gdb_test_multiple "command" "testname" {
>   ...
> } -lbl
> ...
> as opposed to having to insert the "" for the prompt_regexp arguments:
> ...
> gdb_test_multiple "command" "testname" {
>   ...
> } "" -lbl
> ...
> rewrite the promp_regexp argument usage into:
> ...
> gdb_test_multiple "command" "testname" {
>   ...
> } -prompt $prompt_regexp
> ...

Honestly, to me, this:

 gdb_test_multiple "command" "testname" {
   ...
 } -lbl -prompt $prompt_regexp

looks a bit harder to grok than:

 gdb_test_multiple "command" "testname" {
   -lbl
   -prompt $prompt_regexp
   ...
 }

... because those options appear at the end, after the regexes.

Alternatively, if you don't like the -lbl within the {} block, and if
we're going to use "-" options, how about supporting them before
the {} user code block, so that the user code block is always
at the end?  Like:

 gdb_test_multiple "command" "testname" -lbl {
   ...
 }

 gdb_test_multiple "command" "testname" -prompt $prompt_regexp {
   ...
 }

That should be doable with:

 -proc gdb_test_multiple { command message user_code { prompt_regexp "" } } {
 +proc gdb_test_multiple { command message args } {

and then walking the $args list, processing "-" arguments, and interpreting
the first non-"-" argument as the user code block (and erroring out if there
are more arguments).  I think the gdb_test_multiple code would look quite similar
to your patch, except that the user_code parameter would no longer be a parameter,
instead it would be a local variable set to the first non-"-" element of $args.

Thanks,
Pedro Alves


  reply	other threads:[~2020-02-27 16:03 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-19 17:40 [PATCH][gdb/testsuite] Fix corefile-buildid.exp with check-read1 Tom de Vries
2020-02-19 20:09 ` Pedro Alves
2020-02-19 21:30   ` [RFC][gdb/testsuite] Handle -line and -non-empty-line in gdb_test_multiple Tom de Vries
2020-02-20 13:28     ` Pedro Alves
2020-02-21 15:35       ` [RFC][gdb/testsuite] Add -lbl option " Tom de Vries
2020-02-27 16:03         ` Pedro Alves [this message]
2020-03-01  9:08           ` Tom de Vries
2020-03-02 13:34             ` 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=946e4070-8328-3ff1-eb45-1532a8782acd@redhat.com \
    --to=palves@redhat.com \
    --cc=gdb-patches@sourceware.org \
    --cc=tdevries@suse.de \
    /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