1# Copyright 2015-2019 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 24clean_restart ${testfile} 25 26set bp_location [gdb_get_line_number "BREAK" ${testdir}/foo.adb] 27runto "foo.adb:$bp_location" 28 29 30proc test_menu {expr function menu_entries selection output} { 31 set menu [multi_line "Multiple matches for $function" \ 32 "\\\[0\\\] cancel" \ 33 "$menu_entries" \ 34 "> $"] 35 set test_name "multiple matches for $function ($expr)" 36 gdb_test_multiple "print $expr" "$test_name" \ 37 { 38 -re "$menu" { 39 pass "$test_name" 40 } 41 default { 42 fail "$test_name" 43 } 44 } 45 gdb_test "$selection" "$output" 46} 47 48 49# Check that function signatures in overload menus are displayed as expected. 50 51# 1. Test with overloaded functions 52test_menu "f (1, null)" "f" \ 53 [multi_line \ 54 "\\\[1\\\] foo\.f \\(integer; foo\.integer_access\\) return boolean at .*foo.adb:.*" \ 55 "\\\[2\\\] foo\.f \\(foo\.new_integer; foo\.integer_access\\) return boolean at .*foo.adb:.*"] \ 56 "1" "= true" 57 58# 2. Test with overloaded procedures 59test_menu "p (1, null)" "p" \ 60 [multi_line \ 61 "\\\[1\\\] foo\.p \\(integer; foo\.integer_access\\) at .*foo.adb:.*" \ 62 "\\\[2\\\] foo\.p \\(foo\.new_integer; foo\.integer_access\\) at .*foo.adb:.*" ] \ 63 "1" "= (void)" 64 65# 3. Test with signatures disabled 66gdb_test "set ada print-signatures off" "" 67test_menu "f (1, null)" "f" \ 68 [multi_line \ 69 "\\\[1\\\] foo\.f at .*foo.adb:.*" \ 70 "\\\[2\\\] foo\.f at .*foo.adb:.*"] \ 71 "1" "= true" 72