Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: "Breazeal, Don" <donb@codesourcery.com>
To: "Qi, Yao" <Yao_Qi@mentor.com>, "Breazeal, Don" <Don_Breazeal@mentor.com>
Cc: "gdb-patches@sourceware.org" <gdb-patches@sourceware.org>
Subject: Re: [PATCH] Skipping tests that use remote protocol
Date: Fri, 12 Dec 2014 19:00:00 -0000	[thread overview]
Message-ID: <548B3B3B.5060709@codesourcery.com> (raw)
In-Reply-To: <877fxxzhmx.fsf@codesourcery.com>

On 12/11/2014 7:11 PM, Qi, Yao wrote:
> Don Breazeal <donb@codesourcery.com> writes:
> 
>> Other procedures are also used that don't really check the right thing.
>>
>> * isnative checks the build triplet against the target triplet.
>>
>> * gdb_is_target_remote and target_is_gdbserver don't differentiate between
>>   remote and extended-remote.  Both require GDB to be running, which makes
>>   using them to skip a test less efficient than a procedure that uses info
>>   from the target board config file.
>>
>> * target_info use_gdb_stub is used in lib/gdb.exp to explicitly determine
>>   if a target is remote and not extended-remote.
>>
>> If we reach consensus on this approach I'll follow up with patches to
>> convert other tests to use these procedures instead of is_remote,
>> isnative, and so on.
> 
> Does "![isnative] || [is_remote host] || [target_info exists use_gdb_stub]"
> work for you?  It is used in some attach related tests.
> 
Hm. This would work for my attach example, but I don't think that this
check is sufficient for all cases (e.g. gdb.base/catch-syscall.exp,
which we want to skip for both "remote" and "extended-remote" on Linux).

[target_info exists use_gdb_stub] alone would work for the attach tests,
which we want to skip for remote but run for extended-remote.  This
(use_gdb_stub) seems to be equivalent to my new proc
[gdb_using_remote_protocol], meaning "using gdbserver/stub" and protocol
== "remote".  The name use_gdb_stub is misleading, since it is only set
for the remote protocol and not the extended protocol.  Things go wrong
in lib/gdb.exp if you set use_gdb_stub and run extended-mode tests.

If we put aside the fact that we can control the results of is_remote by
setting the variable isremote in the board file, then [isnative] and
[is_remote] don't provide the information we really need.  In the
example above they are checking whether build!=target and build!=host,
respectively.  That doesn't cover all the cases, e.g. if build != target
and build != host, we don't know for sure whether target == host.

We can set isremote in the board files, as in native-gdbserver.exp, to
control what is_remote returns.  But checking if we are using gdbserver
or a stub is not the purpose of is_remote, and trying to use it in
general for that could have negative side-effects (e.g. to gcc tests).

My conclusion from all of this is that we should never use isnative or
is_remote to decide whether to skip tests for remote targets.  The two
new proc's are testing the specific conditions that affect the remote
tests.  We could use [target_info exists use_gdb_stub] in place of
[gdb_using_remote_protocol], but the name may be misleading.

What do you think?  In any case I'd like this discussion to result in a
standard approach for skipping remote tests for each of the relevant cases.

Thanks!
--Don


  reply	other threads:[~2014-12-12 19:00 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-12  0:41 Don Breazeal
2014-12-12  3:12 ` Yao Qi
2014-12-12 19:00   ` Breazeal, Don [this message]
2014-12-15 11:59     ` Yao Qi
2014-12-15 18:03       ` Breazeal, Don
2014-12-18 12:16       ` 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=548B3B3B.5060709@codesourcery.com \
    --to=donb@codesourcery.com \
    --cc=Don_Breazeal@mentor.com \
    --cc=Yao_Qi@mentor.com \
    --cc=gdb-patches@sourceware.org \
    /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