1# Copyright 2012-2015 Free Software Foundation, Inc. 2# 3# This program is free software; you can redistribute it and/or modify 4# it under the terms of the GNU General Public License as published by 5# the Free Software Foundation; either version 3 of the License, or 6# (at your option) any later version. 7# 8# This program is distributed in the hope that it will be useful, 9# but WITHOUT ANY WARRANTY; without even the implied warranty of 10# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11# GNU General Public License for more details. 12# 13# You should have received a copy of the GNU General Public License 14# along with this program. If not, see <http://www.gnu.org/licenses/>. 15 16load_lib "ada.exp" 17 18standard_ada_testfile a 19 20if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug ]] != "" } { 21 return -1 22} 23 24clean_restart ${testfile} 25 26set bp_location [gdb_get_line_number "STOP" ${testdir}/a.adb] 27if ![runto "a.adb:$bp_location" ] then { 28 perror "Couldn't run ${testfile}" 29 return 30} 31 32# Verify that assigning to Nnn (a basic string) works... 33 34gdb_test "print nnn" \ 35 "= \"12345\"" \ 36 "print nnn before assignment" 37 38gdb_test_no_output "set variable nnn := \"qcyom\"" 39 40gdb_test "print nnn" \ 41 "= \"qcyom\"" \ 42 "print nnn after assignment" 43 44# Same with Www (a wide string)... 45 46gdb_test "print www" \ 47 "= \"12345\"" \ 48 "print www before assignment" 49 50gdb_test_no_output "set variable www := \"zenrk\"" 51 52gdb_test "print www" \ 53 "= \"zenrk\"" \ 54 "print www after assignment" 55 56# Same with Rws (a wide wide string)... 57 58gdb_test "print rws" \ 59 "= \"12345\"" \ 60 "print rws before assignment" 61 62gdb_test_no_output "set variable rws := \"ndhci\"" 63 64gdb_test "print rws" \ 65 "= \"ndhci\"" \ 66 "print rws after assignment" 67 68# Also, check that GDB doesn't get tricked if we assign to Www a 69# string twice the length of Www. The debugger should reject the 70# assignment, because the array lengths are different (the debugger 71# used to get tricked because the array size was the same). 72 73gdb_test "set variable www := \"1#2#3#4#5#\"" \ 74 "cannot assign arrays of different length" 75