# Copyright 2010-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 # 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 . # Tests for permissions and observer mode. # The permissions flags are only fully functional with stubs or targets # that can run asynchronously. standard_testfile start.c if {[build_executable $testfile.exp $testfile \ $srcfile {debug nowarnings}] == -1} { untested $testfile.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.