This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] Add system test before "set remote system-call-allowed 1"
- From: Pedro Alves <palves at redhat dot com>
- To: Hui Zhu <hui_zhu at mentor dot com>
- Cc: gdb-patches ml <gdb-patches at sourceware dot org>, Nathan Sidwell <nathan_sidwell at mentor dot com>
- Date: Mon, 09 Jun 2014 10:29:38 +0100
- Subject: Re: [PATCH] Add system test before "set remote system-call-allowed 1"
- Authentication-results: sourceware.org; auth=none
- References: <5371910C dot 9020607 at mentor dot com> <53871605 dot 2060605 at redhat dot com> <538EC056 dot 3080607 at mentor dot com> <538F4971 dot 4030305 at redhat dot com> <53943587 dot 5080203 at mentor dot com>
On 06/08/2014 11:05 AM, Hui Zhu wrote:
> On 06/05/14 00:29, Pedro Alves wrote:
>> On 06/04/2014 07:44 AM, Hui Zhu wrote:
>>> On 05/29/14 19:12, Pedro Alves wrote:
>>>> On 05/13/2014 04:27 AM, Hui Zhu wrote:
>>>>> This patch is update version according to the discussion in
>>>>> https://www.sourceware.org/ml/gdb-patches/2009-11/msg00090.html.
>>>>> If test get the target doesn't support fileio system according to the
>>>>> remote log. It will set this test as "unsupported".
>>>>>
>>>>> Before I made this patch, I want add a check before all of tests in this
>>>>> file. But I found that the target maybe support one call but not others.
>>>>> For example: my target support Fwrite, Fopen and so on. But not
>>>>> Fgettimeofday.
>>>>> And it doesn't support Fsystem NULL but it support Fsystem not NULL.
>>>>
>>>> So IIUC, the test will still have system (NULL) FAIL on your
>>>> target, right?
>>>
>>> It will use fileio if argument of Fsystem is not NULL.
>>> But will not use fileio if its argument is NULL.
>>
>> I mean, you still get one FAIL when you run the test
>> against your target, even with your patch applied.
>
> No. It will not because the fail just happen when the target use remote
> file io to handle this system call.
I think I understand now. So in this test:
~~~
gdb_test_no_output "set remote system-call-allowed 1"
gdb_test continue \
"Continuing\\..*system 2:.*OK$stop_msg" \
"System says shell is available"
~~~
your target is not sending an Fsystem packet at all,
and it happens that you target's "system" implementation
returns != 0, indicating that there's a shell on the target.
Correct?
Odd target behavior... Why would this be desirable instead of
a target bug? But I digress.
>> Otherwise, I think I'm missing something.
>>
>> Hmm, looking again at the patch, I'm pretty much confused. :-/
...
>> What's this "Fsystem" supposed to be matching here? At this point
>> "set remote system-call-allowed 1" has NOT been issued yet, so
>> how come we expect to see that?
...
> set msg "System says shell is not available"
> gdb_test_multiple "continue" $msg {
> -re "Continuing\\..*Fsystem.*system 1:.*OK$stop_msg\r\n$gdb_prompt $" {
> pass $msg
> }
>
> Target uses file io handle system and it gets OK.
> Then the test pass.
Ah, I see now. I managed to get confused and assume that
Fsystem was GDB's reply, instead of the request the target
sends...
Thanks,
--
Pedro Alves