public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: Simon Marchi <simon.marchi@polymtl.ca>
To: Tom de Vries <tdevries@suse.de>, Gary Benson <gbenson@redhat.com>
Cc: gdb-patches@sourceware.org, Pedro Alves <palves@redhat.com>
Subject: Re: [PATCH][gdb/testsuite] Rewrite catch-follow-exec.exp
Date: Tue, 23 Oct 2018 23:37:00 -0000	[thread overview]
Message-ID: <f4f391fa-7a0f-5311-0d2d-13aebd5a2b7f@polymtl.ca> (raw)
In-Reply-To: <cb843f7b-dea8-cdf1-7c7b-bead3f948bc1@suse.de>

On 2018-10-23 6:38 p.m., Tom de Vries wrote:
> On 10/23/18 11:05 PM, Tom de Vries wrote:
>> On 10/23/18 11:04 PM, Simon Marchi wrote:
>>> On 2018-10-15 3:54 p.m., Tom de Vries wrote:
>>>>> Just wondering.  Would it make life easier if we fixed PR 23368, which
>>>>> is the reason we have to do the test in an unnatural way?
>>>>
>>>> Yes.
>>>
>>> Hi Tom,
>>>
>>> PR 23368 should be fixed now.  Do you plan on updating catch-follow-exec.exp
>>> to be written in a more standard way?
>>
>> Sure, will do.
> 
> How does this look?

Hi Tom,

Thanks for looking into this so quickly.  I have some superficial suggestions that
can help shorten the test a bit and make it more readable (some of them can be personal
preference though...).

When the test name is omitted, it defaults to the command.  So instead of

    gdb_test "catch exec" \
	{Catchpoint [0-9][0-9]* \(exec\)} \
	"catch exec"

You can write

    gdb_test "catch exec" {Catchpoint [0-9][0-9]* \(exec\)}

and the test name will be "catch exec".  Instead of [0-9][0-9]*, I am
pretty sure you can use [0-9]+, or $decimal, which is provided by DejaGnu
(/usr/share/dejagnu/runtest.exp):

  101:    set decimal "\[0-9\]+"

Except in the {} string, $decimal won't work, because it won't get
substituted.

For this:

    gdb_test "set follow-exec-mode new" \
	"" \
	"set follow-exec-mode new"

You can use

    gdb_test_no_output "set follow-exec-mode new"

(again, omitting the test name makes it default to the command)

I'd suggest replacing

    gdb_test_multiple "info prog" "info prog" {
	-i "$gdb_spawn_id" eof {
	    fail "info prog"
	}
	-i "$gdb_spawn_id" "No selected thread\."  {
	    pass "info prog"
	}
    }

with the simpler

    gdb_test "info prog" "No selected thread."

If GDB crashes as it did before your fix, the test will be unresolved, which is
treated the same as a FAIL.  If you decide to keep the gdb_test_multiple, I
think you don't need to specify -i "$gdb_spawn_id", it's the default.  Also, it's
common practice to factor out the test name, to make sure it's constant.  And
because the test name is the same as the command, you could do

set test "info prog"
gdb_test_multiple $test $test {
  eof {
    fail $test
  }
  -re "No selected thread\." {
    pass $test
  }
}

While at it, could you update the comment at the top of the file, which currently
says:

# Check whether finish respects the print pretty user setting when printing the
# function result.

Thanks!

Simon

  reply	other threads:[~2018-10-23 23:37 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-05 10:11 Tom de Vries
2018-10-09 13:52 ` Gary Benson
2018-10-09 16:40   ` Tom de Vries
2018-10-10  9:28     ` Gary Benson
2018-10-10 13:29       ` Simon Marchi
2018-10-10 13:44         ` Gary Benson
2018-10-11  7:47           ` Tom de Vries
2018-10-11  8:33             ` Gary Benson
2018-10-13 22:18               ` Simon Marchi
2018-10-15 19:54                 ` Tom de Vries
2018-10-15 22:12                   ` Simon Marchi
2018-10-23 21:04                   ` Simon Marchi
2018-10-23 21:05                     ` Tom de Vries
2018-10-23 22:38                       ` Tom de Vries
2018-10-23 23:37                         ` Simon Marchi [this message]
2018-10-24 11:47                           ` Tom de Vries
2018-10-24 12:09                             ` [PATCH][gdb/testsuite] Log wait status on process no longer exists error Tom de Vries
2018-10-24 14:05                               ` Simon Marchi
2018-12-05 19:35                               ` Pedro Franco de Carvalho
2018-10-15 22:12             ` [PATCH][gdb/testsuite] Rewrite catch-follow-exec.exp Simon Marchi
2018-10-16 16:11               ` Tom de Vries
2018-10-16 17:07               ` Tom de Vries
2018-10-16 20:12                 ` Simon Marchi
2018-10-17  7:30               ` Upper case test names Tom de Vries
2018-10-17 12:07                 ` Simon Marchi
2018-10-18 12:56                   ` Tom de Vries
2018-10-18 13:05                     ` Simon Marchi

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=f4f391fa-7a0f-5311-0d2d-13aebd5a2b7f@polymtl.ca \
    --to=simon.marchi@polymtl.ca \
    --cc=gbenson@redhat.com \
    --cc=gdb-patches@sourceware.org \
    --cc=palves@redhat.com \
    --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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).