# Copyright 2010-2012 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 # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # Tests for permissions and observer mode. # The permissions flags are only fully functional with stubs or targets # that can run asynchronously. set testfile permission set srcfile start.c set binfile ${objdir}/${subdir}/${testfile} if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug nowarnings}] != "" } { untested permissions.exp return -1 } if [get_compiler_info] { return -1 } gdb_exit gdb_start gdb_reinitialize_dir $srcdir/$subdir gdb_test "show may-write-registers" \ "Permission to write into registers is on." gdb_test "show may-write-memory" \ "Permission to write into target memory is on." gdb_test "show may-insert-breakpoints" \ "Permission to insert breakpoints in the target is on." gdb_test "show may-insert-tracepoints" \ "Permission to insert tracepoints in the target is on." gdb_test "show may-insert-fast-tracepoints" \ "Permission to insert fast tracepoints in the target is on." gdb_test "show may-interrupt" \ "Permission to interrupt or signal the target is on." gdb_test "set observer on" "Observer mode is now on." "enable observer mode" gdb_test "show may-write-memory" \ "Permission to write into target memory is off." gdb_test "show may-write-registers" \ "Permission to write into registers is off." gdb_test "show may-insert-breakpoints" \ "Permission to insert breakpoints in the target is off." gdb_test "show may-insert-tracepoints" \ "Permission to insert tracepoints in the target is off." gdb_test "show may-insert-fast-tracepoints" \ "Permission to insert fast tracepoints in the target is on." gdb_test "show may-interrupt" \ "Permission to interrupt or signal the target is off." gdb_test "set observer off" "Observer mode is now off." "disable observer mode" # Go back to all-stop mode. gdb_test_no_output "set non-stop off" gdb_load ${binfile} if ![runto_main] then { perror "couldn't run to breakpoint" continue } gdb_test "print x = 45" "$decimal = 45" "set a global" gdb_test "print x" "$decimal = 45" gdb_test "set may-write-memory off" gdb_test "print x = 92" "Writing to memory is not allowed.*" \ "try to set a global" gdb_test "print x" "$decimal = 45" # FIXME Add tests for other flags when a testsuite-able target becomes # available.