Add system test before "set remote system-call-allowed 1" to fileio.exp
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 I think if we want to check target support fileio, we need check them one by one. 2014-06-04 Nathan Sidwell <nathan@codesourcery.com> Hui Zhu <hui@codesourcery.com> * gdb.base/fileio.exp: Add test for shell not available as well as available. * gdb.base/fileio.c (test_system): Check for shell twice.
This commit is contained in:
parent
90a45c4d5f
commit
9f5a4cef68
|
@ -1,3 +1,10 @@
|
||||||
|
2014-06-04 Nathan Sidwell <nathan@codesourcery.com>
|
||||||
|
Hui Zhu <hui@codesourcery.com>
|
||||||
|
|
||||||
|
* gdb.base/fileio.exp: Add test for shell not available as well as
|
||||||
|
available.
|
||||||
|
* gdb.base/fileio.c (test_system): Check for shell twice.
|
||||||
|
|
||||||
2014-06-04 Yao Qi <yao@codesourcery.com>
|
2014-06-04 Yao Qi <yao@codesourcery.com>
|
||||||
|
|
||||||
* gdb.base/auto-connect-native-target.exp: Remove redundant
|
* gdb.base/auto-connect-native-target.exp: Remove redundant
|
||||||
|
|
|
@ -55,7 +55,11 @@ time(time_t *t);
|
||||||
Not applicable.
|
Not applicable.
|
||||||
|
|
||||||
system (const char * string);
|
system (const char * string);
|
||||||
1) Invalid string/command. - returns 127. */
|
1) See if shell available - returns 0
|
||||||
|
2) See if shell available - returns !0
|
||||||
|
3) Execute simple shell command - returns 0
|
||||||
|
4) Invalid string/command. - returns 127. */
|
||||||
|
|
||||||
static const char *strerrno (int err);
|
static const char *strerrno (int err);
|
||||||
|
|
||||||
/* Note that OUTDIR is defined by the test suite. */
|
/* Note that OUTDIR is defined by the test suite. */
|
||||||
|
@ -375,21 +379,27 @@ test_system ()
|
||||||
*/
|
*/
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
/* Test for shell */
|
/* Test for shell ('set remote system-call-allowed' is disabled
|
||||||
|
by default). */
|
||||||
ret = system (NULL);
|
ret = system (NULL);
|
||||||
printf ("system 1: ret = %d %s\n", ret, ret != 0 ? "OK" : "");
|
printf ("system 1: ret = %d %s\n", ret, ret == 0 ? "OK" : "");
|
||||||
|
stop ();
|
||||||
|
/* Test for shell again (the testsuite will have enabled it now). */
|
||||||
|
ret = system (NULL);
|
||||||
|
printf ("system 2: ret = %d %s\n", ret, ret != 0 ? "OK" : "");
|
||||||
stop ();
|
stop ();
|
||||||
/* This test prepares the directory for test_rename() */
|
/* This test prepares the directory for test_rename() */
|
||||||
sprintf (sys, "mkdir -p %s/%s %s/%s", OUTDIR, TESTSUBDIR, OUTDIR, TESTDIR2);
|
sprintf (sys, "mkdir -p %s/%s %s/%s", OUTDIR, TESTSUBDIR, OUTDIR, TESTDIR2);
|
||||||
ret = system (sys);
|
ret = system (sys);
|
||||||
if (ret == 127)
|
if (ret == 127)
|
||||||
printf ("system 2: ret = %d /bin/sh unavailable???\n", ret);
|
printf ("system 3: ret = %d /bin/sh unavailable???\n", ret);
|
||||||
else
|
else
|
||||||
printf ("system 2: ret = %d %s\n", ret, ret == 0 ? "OK" : "");
|
printf ("system 3: ret = %d %s\n", ret, ret == 0 ? "OK" : "");
|
||||||
stop ();
|
stop ();
|
||||||
/* Invalid command (just guessing ;-) ) */
|
/* Invalid command (just guessing ;-) ) */
|
||||||
ret = system ("wrtzlpfrmpft");
|
ret = system ("wrtzlpfrmpft");
|
||||||
printf ("system 3: ret = %d %s\n", ret, WEXITSTATUS (ret) == 127 ? "OK" : "");
|
printf ("system 4: ret = %d %s\n", ret,
|
||||||
|
WEXITSTATUS (ret) == 127 ? "OK" : "");
|
||||||
stop ();
|
stop ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -180,19 +180,34 @@ gdb_test continue \
|
||||||
"Continuing\\..*isatty 5:.*OK$stop_msg" \
|
"Continuing\\..*isatty 5:.*OK$stop_msg" \
|
||||||
"Isatty (open file)"
|
"Isatty (open file)"
|
||||||
|
|
||||||
gdb_test continue \
|
gdb_test_no_output "set debug remote 1"
|
||||||
"Continuing\\..*system 1:.*OK$stop_msg" \
|
set msg "System says shell is not available"
|
||||||
"System says shell is available"
|
gdb_test_multiple "continue" $msg {
|
||||||
|
-re "Continuing\\..*Fsystem.*system 1:.*OK$stop_msg\r\n$gdb_prompt $" {
|
||||||
|
pass $msg
|
||||||
|
}
|
||||||
|
-re ".*Fsystem.*$gdb_prompt $" {
|
||||||
|
fail $msg
|
||||||
|
}
|
||||||
|
-re "$gdb_prompt $" {
|
||||||
|
unsupported $msg
|
||||||
|
}
|
||||||
|
}
|
||||||
|
gdb_test_no_output "set debug remote 0"
|
||||||
|
|
||||||
gdb_test_no_output "set remote system-call-allowed 1"
|
gdb_test_no_output "set remote system-call-allowed 1"
|
||||||
|
|
||||||
gdb_test continue \
|
gdb_test continue \
|
||||||
"Continuing\\..*system 2:.*OK$stop_msg" \
|
"Continuing\\..*system 2:.*OK$stop_msg" \
|
||||||
|
"System says shell is available"
|
||||||
|
|
||||||
|
gdb_test continue \
|
||||||
|
"Continuing\\..*system 3:.*OK$stop_msg" \
|
||||||
"System(3) call"
|
"System(3) call"
|
||||||
|
|
||||||
# Is this ok? POSIX says system returns a waitpid status?
|
# Is this ok? POSIX says system returns a waitpid status?
|
||||||
gdb_test continue \
|
gdb_test continue \
|
||||||
"Continuing\\..*system 3:.*OK$stop_msg" \
|
"Continuing\\..*system 4:.*OK$stop_msg" \
|
||||||
"System with invalid command returns 127"
|
"System with invalid command returns 127"
|
||||||
|
|
||||||
gdb_test continue \
|
gdb_test continue \
|
||||||
|
|
Loading…
Reference in New Issue