This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Add system test before "set remote system-call-allowed 1"


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.


Otherwise, I think I'm missing something.

Hmm, looking again at the patch, I'm pretty much confused.  :-/

gdb_test continue \
-"Continuing\\..*system 1:.*OK$stop_msg" \
-"System says shell is available"
+gdb_test_no_output "set debug remote 1"
+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 $" {
                          ^^^^^^^

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?

I am so sorry that I didn't explain this patch very clear.
The test before "set remote system-call-allowed 1" is to test the function that introduced in https://sourceware.org/gdb/current/onlinedocs/gdb/system.html "Due to security concerns, the system call is by default refused by GDB. The user has to allow this call explicitly with the set remote system-call-allowed 1 command."

So 3 part of this test is for:

gdb_test_no_output "set debug remote 1"
# Open the switch to check if this target use file io to handle this system or not.

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.

    -re ".*Fsystem.*$gdb_prompt $" {
	fail $msg
    }

Target uses file io handle system and it doesn't OK.
Then the test fail.

    -re "$gdb_prompt $" {
	unsupported $msg
    }

Target doesn't use file io.  The test is not support.

}

Thanks,
Hui


+       pass $msg
+    }
+    -re ".*Fsystem.*$gdb_prompt $" {
+       fail $msg
+    }
+    -re "$gdb_prompt $" {
+       unsupported $msg
+    }
+}
+gdb_test_no_output "set debug remote 0"



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]