From: Joel Brobecker Date: Tue, 6 Mar 2012 17:04:59 +0000 (+0000) Subject: New Ada testcase (bp_enum_homonym). X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ba2419699afe06cf8354f52c297e38191479ee93;p=binutils-gdb.git New Ada testcase (bp_enum_homonym). gdb/testsuite/ChangeLog: * gdb.ada/bp_enum_homonym: New testcase. --- diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 6253d4a0d74..8cddd193590 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2012-03-06 Joel Brobecker + + * gdb.ada/bp_enum_homonym: New testcase. + 2012-03-06 Yao Qi * gdb.trace/ftrace.exp (test_fast_tracepoints): Run test on target diff --git a/gdb/testsuite/gdb.ada/bp_enum_homonym.exp b/gdb/testsuite/gdb.ada/bp_enum_homonym.exp new file mode 100644 index 00000000000..5d6aa923758 --- /dev/null +++ b/gdb/testsuite/gdb.ada/bp_enum_homonym.exp @@ -0,0 +1,52 @@ +# Copyright 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 . + +load_lib "ada.exp" + +set testdir "bp_enum_homonym" +set testfile "${testdir}/p" +set srcfile ${srcdir}/${subdir}/${testfile}.adb +set binfile ${objdir}/${subdir}/${testfile} + +file mkdir ${objdir}/${subdir}/${testdir} +if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug ]] != "" } { + return -1 +} + +clean_restart ${testfile} + +# Force GDB to convert the psymtab of pck.adb into a symtab. +gdb_test "list pck.adb:1" \ + "$decimal\[ \t\]+-- Copyright.*" + +# Break on subprogram "Archive". There is an enumeral that's an +# homonym, so verify that GDB doesn't provide the choice between +# the subprogram and the enumeral for the location of the breakpoint. +# Instead, it should insert the breakpoint on the function alone. + +gdb_test "break archive" \ + "Breakpoint $decimal at $hex: file .*pck.adb, line $decimal\\." + +# Run the program. Make sure the program runs until it hits +# the breakpoint and that the debugger does not unexpectedly ask +# the user to choose between several locations for the breakpoint +# (while the inferior is starting up, new DSOs being mapped causes +# the breakpoint location to be reevaluated). + +gdb_run_cmd +gdb_test "" \ + "Breakpoint $decimal, pck\\.archive \\(\\).*" \ + "run to pck.archive breakpoint" + diff --git a/gdb/testsuite/gdb.ada/bp_enum_homonym/p.adb b/gdb/testsuite/gdb.ada/bp_enum_homonym/p.adb new file mode 100644 index 00000000000..e6c4a8ac050 --- /dev/null +++ b/gdb/testsuite/gdb.ada/bp_enum_homonym/p.adb @@ -0,0 +1,26 @@ +-- Copyright 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 . + +with Pck; use Pck; + +procedure P is + A : Action; +begin + A := Get_Action; + if A = Archive then + Archive; + end if; +end P; + diff --git a/gdb/testsuite/gdb.ada/bp_enum_homonym/pck.adb b/gdb/testsuite/gdb.ada/bp_enum_homonym/pck.adb new file mode 100644 index 00000000000..6a05e0c62e8 --- /dev/null +++ b/gdb/testsuite/gdb.ada/bp_enum_homonym/pck.adb @@ -0,0 +1,28 @@ +-- Copyright 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 . + +package body Pck is + + procedure Archive is + begin + null; + end Archive; + + function Get_Action return Action is + begin + return Archive; + end Get_Action; + +end Pck; diff --git a/gdb/testsuite/gdb.ada/bp_enum_homonym/pck.ads b/gdb/testsuite/gdb.ada/bp_enum_homonym/pck.ads new file mode 100644 index 00000000000..2a0c6062684 --- /dev/null +++ b/gdb/testsuite/gdb.ada/bp_enum_homonym/pck.ads @@ -0,0 +1,23 @@ +-- Copyright 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 . + +package Pck is + + procedure Archive; + + type Action is (Archive, Extract); + function Get_Action return Action; + +end Pck;