-# Copyright 2002, 2003, 2004, 2007, 2008, 2009, 2010, 2011
-# Free Software Foundation, Inc.
+# Copyright 2002-2016 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
continue
}
-if $tracelevel then {
- strace $tracelevel
-}
+standard_testfile
-set testfile "fileio"
-set srcfile ${testfile}.c
-set binfile ${objdir}/${subdir}/${testfile}
+if {[is_remote host]} {
+ set outdir .
+} else {
+ set outdir [standard_output_file {}]
+}
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" \
+ executable \
+ [list debug "additional_flags=-DOUTDIR=\"$outdir/\""]] != "" } {
untested fileio.exp
return -1
}
# Create and source the file that provides information about the compiler
# used to compile the test case.
-if [get_compiler_info ${binfile}] {
- return -1;
+if [get_compiler_info] {
+ return -1
}
-remote_exec build {sh -xc test\ -r\ dir2.fileio.test\ &&\ chmod\ -f\ +w\ dir2.fileio.test}
-remote_exec build {sh -xc rm\ -rf\ *.fileio.test}
+set dir2 [standard_output_file dir2.fileio.test]
+if {[file exists $dir2] && ![file writable $dir2]} {
+ system "chmod +w $dir2"
+}
+system "rm -rf [standard_output_file *.fileio.test]"
set oldtimeout $timeout
set timeout [expr "$timeout + 60"]
gdb_test "continue" ".*" ""
-catch "system \"chmod -f -w nowrt.fileio.test\""
+catch "system \"chmod -f -w [standard_output_file nowrt.fileio.test]\""
gdb_test continue \
"Continuing\\..*open 5:.*EACCES$stop_msg" \
"Continuing\\..*isatty 5:.*OK$stop_msg" \
"Isatty (open file)"
-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 $" {
+ 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 continue \
"Continuing\\..*system 2:.*OK$stop_msg" \
+"System says shell is available"
+
+gdb_test continue \
+"Continuing\\..*system 3:.*OK$stop_msg" \
"System(3) call"
# Is this ok? POSIX says system returns a waitpid status?
gdb_test continue \
-"Continuing\\..*system 3:.*OK$stop_msg" \
+"Continuing\\..*system 4:.*OK$stop_msg" \
"System with invalid command returns 127"
+# Prepare the directory for rename tests in case that test_system
+# failed to create.
+set dir1 [file join $outdir "dir1.fileio.test" "subdir.fileio.test"]
+remote_exec host "mkdir -p $dir1"
+set dir1 [file join $outdir "dir2.fileio.test"]
+remote_exec host "mkdir $dir1"
+
gdb_test continue \
"Continuing\\..*rename 1:.*OK$stop_msg" \
"Rename a file"
"Time(2) returns feasible values"
gdb_exit
-# Wait till GDB really exits.
-sleep 1
-remote_exec build {sh -xc test\ -r\ dir2.fileio.test\ &&\ chmod\ -f\ +w\ dir2.fileio.test}
-remote_exec build {sh -xc rm\ -rf\ *.fileio.test}
+# Make dir2 writable again so rm -rf of a build tree Just Works.
+if {[file exists $dir2] && ![file writable $dir2]} {
+ system "chmod +w $dir2"
+}
set timeout $oldtimeout
return 0