2017-01-01 07:50:51 +01:00
|
|
|
# Copyright 2002-2017 Free Software Foundation, Inc.
|
2003-06-10 16:38:04 +02:00
|
|
|
|
|
|
|
# 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
|
2007-08-23 20:14:19 +02:00
|
|
|
# the Free Software Foundation; either version 3 of the License, or
|
2003-06-10 16:38:04 +02:00
|
|
|
# (at your option) any later version.
|
2007-08-23 20:14:19 +02:00
|
|
|
#
|
2003-06-10 16:38:04 +02:00
|
|
|
# This program is distributed in the hope that it will be useful,
|
|
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
# GNU General Public License for more details.
|
2007-08-23 20:14:19 +02:00
|
|
|
#
|
2003-06-10 16:38:04 +02:00
|
|
|
# You should have received a copy of the GNU General Public License
|
2007-08-23 20:14:19 +02:00
|
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
2003-06-10 16:38:04 +02:00
|
|
|
|
|
|
|
# This file was written by Corinna Vinschen <vinschen@redhat.com>
|
|
|
|
|
2003-11-10 10:12:20 +01:00
|
|
|
if [target_info exists gdb,nofileio] {
|
|
|
|
verbose "Skipping fileio.exp because of no fileio capabilities."
|
2003-06-14 18:51:42 +02:00
|
|
|
continue
|
|
|
|
}
|
|
|
|
|
2003-06-10 16:38:04 +02:00
|
|
|
|
test suite update - gdb.base/[efg]
Convert files gdb.base/[efg]*.exp to use standard_output_file et al.
* ena-dis-br.exp, enum_cond.exp, enumval.exp, environ.exp,
eu-strip-infcall.exp, eval-skip.exp, exe-lock.exp,
expand-psymtabs.exp, exprs.exp, fileio.exp, find.exp,
fixsection.exp, foll-exec.exp, foll-fork.exp,
fortran-sym-case.exp, frame-args.exp, freebpcmd.exp, fullname.exp,
funcargs.exp, gcore-buffer-overflow.exp, gcore.exp, gdb1090.exp,
gdb11530.exp, gdb11531.exp, gdb1250.exp, gdb1555.exp, gdb1821.exp,
gdbindex-stabs.exp, gdbvars.exp, gnu-ifunc.exp, gnu_vector.exp:
Use standard_testfile, standard_output_file, prepare_for_testing,
clean_restart.
2013-06-27 20:50:30 +02:00
|
|
|
standard_testfile
|
2003-06-10 16:38:04 +02:00
|
|
|
|
2013-08-23 20:18:39 +02:00
|
|
|
if {[is_remote host]} {
|
|
|
|
set outdir .
|
|
|
|
} else {
|
|
|
|
set outdir [standard_output_file {}]
|
|
|
|
}
|
|
|
|
|
|
|
|
if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" \
|
|
|
|
executable \
|
2017-05-18 12:47:05 +02:00
|
|
|
[list debug "additional_flags=-DOUTDIR=\"$outdir/\""]] != "" } {
|
2016-12-01 21:47:50 +01:00
|
|
|
untested "failed to compile"
|
2006-08-10 07:27:22 +02:00
|
|
|
return -1
|
2003-06-10 16:38:04 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
# Create and source the file that provides information about the compiler
|
|
|
|
# used to compile the test case.
|
|
|
|
|
2012-06-21 22:46:25 +02:00
|
|
|
if [get_compiler_info] {
|
gdb/testsuite/
* config/monitor.exp (gdb_target_cmd): Remove semicolon after
'return'.
(gdb_target_monitor, gdb_load): Likewise.
* config/sid.exp (gdb_load): Likewise.
* config/slite.exp (gdb_load): Likewise.
* config/vx.exp (gdb_start, spawn_vxgdb): Likewise.
* gdb.ada/arrayidx.exp, gdb.ada/null_array.exp: Likewise.
* gdb.arch/mips-octeon-bbit.exp (single_step): Likewise.
(single_step_until): Likewise.
* gdb.arch/powerpc-d128-regs.exp: Likewise.
* gdb.arch/system-gcore.exp: Likewise.
* gdb.base/bigcore.exp (extract_heap): Likewise.
* gdb.base/break-on-linker-gcd-function.exp: Likewise.
* gdb.base/call-ar-st.exp: Likewise.
* gdb.base/call-rt-st.exp: Likewise.
* gdb.base/call-sc.exp, gdb.base/call-strs.exp: Likewise.
* gdb.base/callfuncs.exp, gdb.base/completion.exp: Likewise.
* gdb.base/condbreak.exp, gdb.base/constvars.exp: Likewise.
* gdb.base/corefile.exp: Likewise.
* gdb.base/dbx.exp (gdb_file_cmd): Likewise.
* gdb.base/exprs.exp, gdb.base/fileio.exp: Likewise.
* gdb.base/fixsection.exp: Likewise.
* gdb.base/funcargs.exp: Likewise.
* gdb.base/gcore-buffer-overflow.exp: Likewise.
* gdb.base/gcore-relro.exp: Likewise.
* gdb.base/gcore.exp, gdb.base/gdb11530.exp: Likewise.
* gdb.base/gdb11531.exp, gdb.base/gnu-ifunc.exp: Likewise.
* gdb.base/info-os.exp, gdb.base/info-proc.exp: Likewise.
* gdb.base/interp.exp, gdb.base/langs.exp:: Likewise.
* gdb.base/list.exp: Likewise.
(set_listsize): Likewise.
* gdb.base/logical.exp, gdb.base/mips_pro.exp: Likewise.
* gdb.base/miscexprs.exp, gdb.base/nodebug.exp: Likewise.
* gdb.base/opaque.exp, gdb.base/pointers.exp: Likewise.
* gdb.base/psymtab.exp, gdb.base/ptype.exp: Likewise.
* gdb.base/relational.exp, gdb.base/scope.exp: Likewise.
* gdb.base/setvar.exp: Likewise.
(test_set): Likewise.
* gdb.base/signals.exp, gdb.base/sizeof.exp: Likewise.
* gdb.base/solib-overlap.exp: Likewise.
* gdb.base/store.exp, gdb.base/structs.exp: Likewise.
* gdb.base/structs2.exp, gdb.base/volatile.exp: Likewise.
* gdb.base/watchpoint.exp (initialize): Likewise.
(test_simple_watchpoint): Likewise.
(test_disabling_watchpoints): Likewise.
(test_watchpoint_triggered_in_syscall): Likewise.
* gdb.base/whatis.exp, gdb.cp/ambiguous.exp: Likewise.
* gdb.cp/casts.exp, gdb.cp/ctti.exp: Likewise.
* gdb.cp/namespace.exp, gdb.cp/nsdecl.exp: Likewise.
* gdb.cp/psmang.exp, gdb.dwarf2/dw2-ranges.exp: Likewise.
* gdb.hp/gdb.aCC/optimize.exp: Likewise.
* gdb.hp/gdb.aCC/watch-cmd.exp: Likewise.
* gdb.hp/gdb.base-hp/callfwmall.exp: Likewise.
* gdb.hp/gdb.base-hp/pxdb.exp: Likewise.
* gdb.hp/gdb.compat/xdb1.exp: Likewise.
* gdb.hp/gdb.compat/xdb2.exp: Likewise.
* gdb.hp/gdb.compat/xdb3.exp: Likewise.
* gdb.hp/gdb.defects/bs14602.exp: Likewise.
* gdb.hp/gdb.defects/solib-d.exp: Likewise.
* gdb.mi/gdb792.exp: Likewise.
* gdb.mi/mi-inheritance-syntax-error.exp: Likewise.
* gdb.mi/mi-logging.exp, gdb.mi/mi-var-cp.exp : Likewise.
* gdb.mi/mi-var-rtti.exp, gdb.python/py-type.exp: Likewise.
* gdb.threads/gcore-thread.exp: Likewise.
(load_core): Likewise.
* gdb.threads/pthreads.exp (all_threads_running): Likewise.
(test_startup, check_control_c): Likewise.
* gdb.threads/sigstep-threads.exp: Likewise.
* gdb.threads/thread_check.exp: Likewise.
* gdb.trace/backtrace.exp, gdb.trace/change-loc.exp: Likewise.
* gdb.trace/circ.exp (run_trace_experiment): Likewise.
(set_a_tracepoint, trace_buffer_normal): Likewise.
(gdb_trace_circular_tests): Likewise.
* gdb.trace/collection.exp: Likewise.
* gdb.trace/disconnected-tracing.exp: Likewise.
* gdb.trace/infotrace.exp: Likewise.
* gdb.trace/mi-traceframe-changed.exp: Likewise.
* gdb.trace/mi-tracepoint-changed.exp: Likewise.
* gdb.trace/mi-tsv-changed.exp (test_create_delete_modify_tsv): Likewise.
* gdb.trace/packetlen.exp, gdb.trace/passc-dyn.exp: Likewise.
* gdb.trace/pending.exp, gdb.trace/report.exp: Likewise.
* gdb.trace/stap-trace.exp: Likewise.
* gdb.trace/status-stop.exp,gdb.trace/strace.exp: Likewise.
* gdb.trace/tfind.exp, gdb.trace/trace-break.exp: Likewise.
* gdb.trace/trace-buffer-size.exp: Likewise.
* gdb.trace/tspeed.exp, gdb.trace/tsv.exp: Likewise.
* gdb.trace/unavailable.exp: Likewise.
* gdb.trace/while-dyn.exp: Likewise.
* lib/fortran.exp (set_lang_fortran): Likewise.
* lib/gdb.exp (default_gdb_version, gdb_start_cmd): Likewise.
(gdb_breakpoint, gdb_reinitialize_dir): Likewise.
(default_gdb_start, get_compiler_info): Likewise.
(gdb_compile, gdb_compile_objc, gdb_reload, gdb_init): Likewise.
(get_debug_format, setup_xfail_format): Likewise.
(rerun_to_main, gdb_skip_float_test): Likewise.
(build_id_debug_filename_get, get_remotetimeout): Likewise.
* lib/java.exp (set_lang_java): Likewise.
* lib/mi-support.exp (default_mi_gdb_start): Likewise.
(mi_gdb_reinitialize_dir, mi_gdb_target_cmd): Likewise.
(mi_gdb_file_cmd, mi_gdb_test): Likewise.
(mi_run_cmd_full, mi_expect_interrupt): Likewise.
* lib/objc.exp (set_lang_objc): Likewise.
* lib/pascal.exp (set_lang_pascal): Likewise.
* lib/prompt.exp (default_prompt_gdb_start): Likewise.
* lib/trace-support.exp (gdb_trace_setactions, gdb_tfind_test): Likewise.
(gdb_readexpr, gdb_gettpnum, gdb_find_recursion_test_baseline): Likewise.
2013-03-14 14:34:06 +01:00
|
|
|
return -1
|
2003-06-10 16:38:04 +02:00
|
|
|
}
|
|
|
|
|
2013-08-23 20:18:39 +02:00
|
|
|
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]"
|
2003-06-10 16:38:04 +02:00
|
|
|
|
|
|
|
set oldtimeout $timeout
|
|
|
|
set timeout [expr "$timeout + 60"]
|
|
|
|
|
|
|
|
# Start with a fresh gdb.
|
|
|
|
|
|
|
|
gdb_exit
|
|
|
|
gdb_start
|
|
|
|
gdb_reinitialize_dir $srcdir/$subdir
|
|
|
|
gdb_load ${binfile}
|
2010-05-25 00:06:59 +02:00
|
|
|
gdb_test_no_output "set print sevenbit-strings"
|
|
|
|
gdb_test_no_output "set print address off"
|
|
|
|
gdb_test_no_output "set width 0"
|
2003-06-10 16:38:04 +02:00
|
|
|
|
|
|
|
if ![runto_main] then {
|
|
|
|
perror "couldn't run to breakpoint"
|
|
|
|
continue
|
|
|
|
}
|
|
|
|
|
2010-05-25 00:06:59 +02:00
|
|
|
gdb_test "break stop" "Breakpoint .*$srcfile.*"
|
|
|
|
|
gdb.base/fileio.c: Fix several -Wreturn-type warnings
All the "test_" functions warn like:
src/gdb/testsuite/gdb.base/fileio.c: In function ‘test_close’:
src/gdb/testsuite/gdb.base/fileio.c:280:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
Nothing looks at the return of these functions, so just make them
return void. While at it, "()" is not the same as "(void)" in C - fix
that too.
gdb/ChangeLog:
2017-05-18 Pedro Alves <palves@redhat.com>
* gdb.base/fileio.c (stop, test_open, test_write, test_read)
(test_lseek, test_close, test_stat, test_fstat, test_isatty)
(test_system, test_rename, test_unlink, test_time): Change
prototypes.
* gdb.base/fileio.exp (stop_msg): Adjust.
2017-05-18 12:37:55 +02:00
|
|
|
set stop_msg ".*Breakpoint .* stop \\(\\) at.*$srcfile:.*static void stop \\(void\\) {}.*"
|
2006-06-13 10:46:17 +02:00
|
|
|
|
2003-06-10 16:38:04 +02:00
|
|
|
gdb_test continue \
|
2006-06-13 10:46:17 +02:00
|
|
|
"Continuing\\..*open 1:.*OK$stop_msg" \
|
2003-06-10 16:38:04 +02:00
|
|
|
"Open a file"
|
|
|
|
|
|
|
|
gdb_test continue \
|
2006-06-13 10:46:17 +02:00
|
|
|
"Continuing\\..*open 2:.*EEXIST$stop_msg" \
|
2003-06-10 16:38:04 +02:00
|
|
|
"Creating already existing file returns EEXIST"
|
|
|
|
|
|
|
|
gdb_test continue \
|
2006-06-13 10:46:17 +02:00
|
|
|
"Continuing\\..*open 3:.*EISDIR$stop_msg" \
|
2003-06-10 16:38:04 +02:00
|
|
|
"Open directory for writing returns EISDIR"
|
|
|
|
|
|
|
|
gdb_test continue \
|
2006-06-13 10:46:17 +02:00
|
|
|
"Continuing\\..*open 4:.*ENOENT$stop_msg" \
|
2003-06-10 16:38:04 +02:00
|
|
|
"Opening nonexistant file returns ENOENT"
|
|
|
|
|
2010-06-09 00:58:03 +02:00
|
|
|
gdb_test "continue" ".*" ""
|
2010-05-25 00:06:59 +02:00
|
|
|
|
2013-08-23 20:18:39 +02:00
|
|
|
catch "system \"chmod -f -w [standard_output_file nowrt.fileio.test]\""
|
2003-06-10 16:38:04 +02:00
|
|
|
|
|
|
|
gdb_test continue \
|
2006-06-13 10:46:17 +02:00
|
|
|
"Continuing\\..*open 5:.*EACCES$stop_msg" \
|
2003-06-10 16:38:04 +02:00
|
|
|
"Open for write but no write permission returns EACCES"
|
|
|
|
|
|
|
|
gdb_test continue \
|
2006-06-13 10:46:17 +02:00
|
|
|
"Continuing\\..*write 1:.*OK$stop_msg" \
|
2003-06-10 16:38:04 +02:00
|
|
|
"Writing to a file"
|
|
|
|
|
|
|
|
gdb_test continue \
|
2006-06-13 10:46:17 +02:00
|
|
|
"Continuing\\..*write 2:.*EBADF$stop_msg" \
|
2003-06-10 16:38:04 +02:00
|
|
|
"Write using invalid file descriptor returns EBADF"
|
|
|
|
|
|
|
|
gdb_test continue \
|
2006-06-13 10:46:17 +02:00
|
|
|
"Continuing\\..*write 3:.*EBADF$stop_msg" \
|
2003-06-10 16:38:04 +02:00
|
|
|
"Writing to a read-only file returns EBADF"
|
|
|
|
|
|
|
|
gdb_test continue \
|
2006-06-13 10:46:17 +02:00
|
|
|
"Continuing\\..*read 1:.*OK$stop_msg" \
|
2003-06-10 16:38:04 +02:00
|
|
|
"Reading from a file"
|
|
|
|
|
|
|
|
gdb_test continue \
|
2006-06-13 10:46:17 +02:00
|
|
|
"Continuing\\..*read 2:.*EBADF$stop_msg" \
|
2003-06-10 16:38:04 +02:00
|
|
|
"Read using invalid file descriptor returns EBADF"
|
|
|
|
|
|
|
|
gdb_test continue \
|
2006-06-13 10:46:17 +02:00
|
|
|
"Continuing\\..*lseek 1:.*OK$stop_msg" \
|
|
|
|
"Lseeking CUR a file"
|
|
|
|
|
|
|
|
gdb_test continue \
|
|
|
|
"Continuing\\..*lseek 2:.*OK$stop_msg" \
|
|
|
|
"Lseeking END a file"
|
|
|
|
|
|
|
|
gdb_test continue \
|
|
|
|
"Continuing\\..*lseek 3:.*OK$stop_msg" \
|
|
|
|
"Lseeking SET a file"
|
|
|
|
|
2003-06-10 16:38:04 +02:00
|
|
|
|
|
|
|
gdb_test continue \
|
2006-06-13 10:46:17 +02:00
|
|
|
"Continuing\\..*close 1:.*OK$stop_msg" \
|
2003-06-10 16:38:04 +02:00
|
|
|
"Closing a file"
|
|
|
|
|
|
|
|
gdb_test continue \
|
2006-06-13 10:46:17 +02:00
|
|
|
"Continuing\\..*close 2:.*EBADF$stop_msg" \
|
2003-06-10 16:38:04 +02:00
|
|
|
"Closing an invalid file descriptor returns EBADF"
|
|
|
|
|
|
|
|
gdb_test continue \
|
2006-06-13 10:46:17 +02:00
|
|
|
"Continuing\\..*stat 1:.*OK$stop_msg" \
|
2003-06-10 16:38:04 +02:00
|
|
|
"Stat a file"
|
|
|
|
|
|
|
|
gdb_test continue \
|
2006-06-13 10:46:17 +02:00
|
|
|
"Continuing\\..*stat 2:.*(ENOENT|EFAULT)$stop_msg" \
|
2003-06-14 18:51:42 +02:00
|
|
|
"Stat a NULL pathname returns ENOENT or EFAULT"
|
2003-06-10 16:38:04 +02:00
|
|
|
|
|
|
|
gdb_test continue \
|
2006-06-13 10:46:17 +02:00
|
|
|
"Continuing\\..*stat 3:.*ENOENT$stop_msg" \
|
2003-06-10 16:38:04 +02:00
|
|
|
"Stat an empty pathname returns ENOENT"
|
|
|
|
|
|
|
|
gdb_test continue \
|
2006-06-13 10:46:17 +02:00
|
|
|
"Continuing\\..*stat 4:.*ENOENT$stop_msg" \
|
2003-06-10 16:38:04 +02:00
|
|
|
"Stat a nonexistant file returns ENOENT"
|
|
|
|
|
|
|
|
gdb_test continue \
|
2006-06-13 10:46:17 +02:00
|
|
|
"Continuing\\..*fstat 1:.*OK$stop_msg" \
|
2003-06-10 16:38:04 +02:00
|
|
|
"Fstat an open file"
|
|
|
|
|
|
|
|
gdb_test continue \
|
2006-06-13 10:46:17 +02:00
|
|
|
"Continuing\\..*fstat 2:.*EBADF$stop_msg" \
|
2003-06-10 16:38:04 +02:00
|
|
|
"Fstat an invalid file descriptor returns EBADF"
|
|
|
|
|
|
|
|
gdb_test continue \
|
2006-06-13 10:46:17 +02:00
|
|
|
"Continuing\\..*isatty 1:.*OK$stop_msg" \
|
2003-06-10 16:38:04 +02:00
|
|
|
"Isatty (stdin)"
|
|
|
|
|
|
|
|
gdb_test continue \
|
2006-06-13 10:46:17 +02:00
|
|
|
"Continuing\\..*isatty 2:.*OK$stop_msg" \
|
2003-06-10 16:38:04 +02:00
|
|
|
"Isatty (stdout)"
|
|
|
|
|
|
|
|
gdb_test continue \
|
2006-06-13 10:46:17 +02:00
|
|
|
"Continuing\\..*isatty 3:.*OK$stop_msg" \
|
2003-06-10 16:38:04 +02:00
|
|
|
"Isatty (stderr)"
|
|
|
|
|
|
|
|
gdb_test continue \
|
2006-06-13 10:46:17 +02:00
|
|
|
"Continuing\\..*isatty 4:.*OK$stop_msg" \
|
2003-06-10 16:38:04 +02:00
|
|
|
"Isatty (invalid fd)"
|
|
|
|
|
|
|
|
gdb_test continue \
|
2006-06-13 10:46:17 +02:00
|
|
|
"Continuing\\..*isatty 5:.*OK$stop_msg" \
|
2003-06-10 16:38:04 +02:00
|
|
|
"Isatty (open file)"
|
|
|
|
|
2014-06-04 08:37:34 +02:00
|
|
|
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"
|
2006-06-13 10:55:22 +02:00
|
|
|
|
2010-05-25 00:06:59 +02:00
|
|
|
gdb_test_no_output "set remote system-call-allowed 1"
|
|
|
|
|
2006-06-13 10:55:22 +02:00
|
|
|
gdb_test continue \
|
|
|
|
"Continuing\\..*system 2:.*OK$stop_msg" \
|
2014-06-04 08:37:34 +02:00
|
|
|
"System says shell is available"
|
|
|
|
|
|
|
|
gdb_test continue \
|
|
|
|
"Continuing\\..*system 3:.*OK$stop_msg" \
|
2003-06-10 16:38:04 +02:00
|
|
|
"System(3) call"
|
|
|
|
|
2003-06-14 18:51:42 +02:00
|
|
|
# Is this ok? POSIX says system returns a waitpid status?
|
2003-06-10 16:38:04 +02:00
|
|
|
gdb_test continue \
|
2014-06-04 08:37:34 +02:00
|
|
|
"Continuing\\..*system 4:.*OK$stop_msg" \
|
2003-06-10 16:38:04 +02:00
|
|
|
"System with invalid command returns 127"
|
|
|
|
|
Prepare directory in case test_system fails
In gdb.base/fileio.c, some functions may depend on others. For
example, test_rename renames a file to one directory which is created
in test_system. That is means, if test_system fails, test_rename
fails too, which is not a good practise, IMO.
In test_system, system ("mkdir -p XX") is used to create directories
needed for test_rename. In this patch, we use dejagnu remote_exec
proc to create these directories on host.
In my gdb testing, mingw32 host and arm-none-eabi target, system
("mkdir -p XX") doesn't work properly (this issue can be addressed
separately), and this patch fixes the following fails.
FAIL: gdb.base/fileio.exp: Renaming a directory to a non-empty directory returns ENOTEMPTY or EEXIST
FAIL: gdb.base/fileio.exp: Unlink a file
FAIL: gdb.base/fileio.exp: Unlinking a file in a directory w/o write access returns EACCES
gdb/testsuite:
2014-10-29 Yao Qi <yao@codesourcery.com>
* gdb.base/fileio.exp: Make directories on host.
2014-10-29 14:43:05 +01:00
|
|
|
# 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"
|
|
|
|
|
2003-06-10 16:38:04 +02:00
|
|
|
gdb_test continue \
|
2006-06-13 10:46:17 +02:00
|
|
|
"Continuing\\..*rename 1:.*OK$stop_msg" \
|
2003-06-10 16:38:04 +02:00
|
|
|
"Rename a file"
|
|
|
|
|
|
|
|
gdb_test continue \
|
2006-06-13 10:46:17 +02:00
|
|
|
"Continuing\\..*rename 2:.*EISDIR$stop_msg" \
|
2003-06-10 16:38:04 +02:00
|
|
|
"Renaming a file to existing directory returns EISDIR"
|
|
|
|
|
2016-12-01 21:40:05 +01:00
|
|
|
set test "renaming a directory to a non-empty directory returns ENOTEMPTY or EEXIST"
|
2004-01-12 15:44:49 +01:00
|
|
|
gdb_test_multiple continue "${test}" {
|
2006-06-13 10:46:17 +02:00
|
|
|
-re "Continuing\\..*rename 3:.*(ENOTEMPTY|EEXIST)$stop_msg$gdb_prompt $" {
|
2004-01-12 15:44:49 +01:00
|
|
|
pass "${test}"
|
|
|
|
}
|
2006-06-13 10:46:17 +02:00
|
|
|
-re "Continuing\\..*rename 3:.*EBUSY$stop_msg$gdb_prompt $" {
|
2004-01-12 15:44:49 +01:00
|
|
|
# At least version <= 2.6/2004-01-08 of the Linux Kernel gets
|
|
|
|
# this wrong (reporting EBUSY) when the file system is NFS
|
|
|
|
# mounted.
|
|
|
|
setup_xfail *-*-*linux* gdb/1502
|
|
|
|
fail "${test}"
|
|
|
|
}
|
|
|
|
}
|
2003-06-10 16:38:04 +02:00
|
|
|
|
|
|
|
gdb_test continue \
|
2006-06-13 10:46:17 +02:00
|
|
|
"Continuing\\..*rename 4:.*EINVAL$stop_msg" \
|
2003-06-10 16:38:04 +02:00
|
|
|
"Renaming a directory to a subdir of itself returns EINVAL"
|
|
|
|
|
|
|
|
gdb_test continue \
|
2006-06-13 10:46:17 +02:00
|
|
|
"Continuing\\..*rename 5:.*ENOENT$stop_msg" \
|
2003-06-10 16:38:04 +02:00
|
|
|
"Renaming a nonexistant file returns ENOENT"
|
|
|
|
|
|
|
|
gdb_test continue \
|
2006-06-13 10:46:17 +02:00
|
|
|
"Continuing\\..*unlink 1:.*OK$stop_msg" \
|
2003-06-10 16:38:04 +02:00
|
|
|
"Unlink a file"
|
|
|
|
|
|
|
|
# This test fails on Cygwin because unlink() succeeds on Win32 systems
|
|
|
|
# in that situation.
|
|
|
|
if [ishost *cygwin*] {
|
|
|
|
setup_xfail "*-*-*"
|
|
|
|
}
|
|
|
|
gdb_test continue \
|
2006-06-13 10:46:17 +02:00
|
|
|
"Continuing\\..*unlink 2:.*EACCES$stop_msg" \
|
2003-06-10 16:38:04 +02:00
|
|
|
"Unlinking a file in a directory w/o write access returns EACCES"
|
|
|
|
|
|
|
|
gdb_test continue \
|
2006-06-13 10:46:17 +02:00
|
|
|
"Continuing\\..*unlink 3:.*ENOENT$stop_msg" \
|
2003-06-10 16:38:04 +02:00
|
|
|
"Unlinking a nonexistant file returns ENOENT"
|
|
|
|
|
|
|
|
gdb_test continue \
|
2006-06-13 10:46:17 +02:00
|
|
|
"Continuing\\..*time 1:.*OK$stop_msg" \
|
2003-06-10 16:38:04 +02:00
|
|
|
"Time(2) call returns the same value as in parameter"
|
|
|
|
|
|
|
|
sleep 2
|
|
|
|
gdb_test continue \
|
2006-06-13 10:46:17 +02:00
|
|
|
"Continuing\\..*time 2:.*OK$stop_msg" \
|
2003-06-10 16:38:04 +02:00
|
|
|
"Time(2) returns feasible values"
|
|
|
|
|
2011-12-26 12:24:55 +01:00
|
|
|
gdb_exit
|
2003-06-10 16:38:04 +02:00
|
|
|
|
2013-11-12 23:27:04 +01:00
|
|
|
# Make dir2 writable again so rm -rf of a build tree Just Works.
|
|
|
|
if {[file exists $dir2] && ![file writable $dir2]} {
|
|
|
|
system "chmod +w $dir2"
|
|
|
|
}
|
|
|
|
|
2003-06-10 16:38:04 +02:00
|
|
|
set timeout $oldtimeout
|
|
|
|
return 0
|