1# Copyright 2008-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 foo 19 20if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug]] != "" } { 21 return -1 22} 23 24# A convenience function that joins all the arguments together, 25# with a regexp that matches zero-or-more end of lines in between 26# each argument. This function is ideal to write the expected output 27# of a GDB command that generates more than a couple of lines, as 28# this allows us to write each line as a separate string, which is 29# easier to read by a human being. 30 31proc multi_line { args } { 32 return [join $args "\[\r\n\]*"] 33} 34 35clean_restart ${testfile} 36 37set bp_location [gdb_get_line_number "STOP" ${testdir}/foo.adb] 38runto "foo.adb:$bp_location" 39 40set menu [multi_line "Multiple matches for integervar" \ 41 "\\\[0\\\] cancel" \ 42 "\\\[1\\\] pck\\.first\\.integervar.*" \ 43 "\\\[2\\\] pck\\.second\\.integervar.*" \ 44 "> $" ] 45 46set test_name "multiple matches for symbol integervar" 47gdb_test_multiple "print integervar" "$test_name" \ 48{ 49 -re "$menu" { 50 pass "$test_name" 51 } 52 53 default { 54 fail "$test_name" 55 } 56} 57 58# Select the first choice from the multiple-choice menu above. 59gdb_test "1" \ 60 "= 48" \ 61 "select first choice from multiple-choice menu" 62 63