diff options
author | Joel Brobecker <brobecker@gnat.com> | 2012-03-06 17:04:59 +0000 |
---|---|---|
committer | Joel Brobecker <brobecker@gnat.com> | 2012-03-06 17:04:59 +0000 |
commit | ba2419699afe06cf8354f52c297e38191479ee93 (patch) | |
tree | cacef86f3b7d403a654aa81756101595d4930c12 /gdb/testsuite/gdb.ada | |
parent | ca25b5babc60f6284cd4a8c79f66abe2ec5bba21 (diff) | |
download | gdb-ba2419699afe06cf8354f52c297e38191479ee93.zip gdb-ba2419699afe06cf8354f52c297e38191479ee93.tar.gz gdb-ba2419699afe06cf8354f52c297e38191479ee93.tar.bz2 |
New Ada testcase (bp_enum_homonym).
gdb/testsuite/ChangeLog:
* gdb.ada/bp_enum_homonym: New testcase.
Diffstat (limited to 'gdb/testsuite/gdb.ada')
-rw-r--r-- | gdb/testsuite/gdb.ada/bp_enum_homonym.exp | 52 | ||||
-rw-r--r-- | gdb/testsuite/gdb.ada/bp_enum_homonym/p.adb | 26 | ||||
-rw-r--r-- | gdb/testsuite/gdb.ada/bp_enum_homonym/pck.adb | 28 | ||||
-rw-r--r-- | gdb/testsuite/gdb.ada/bp_enum_homonym/pck.ads | 23 |
4 files changed, 129 insertions, 0 deletions
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 0000000..5d6aa92 --- /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 <http://www.gnu.org/licenses/>. + +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 0000000..e6c4a8a --- /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 <http://www.gnu.org/licenses/>. + +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 0000000..6a05e0c --- /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 <http://www.gnu.org/licenses/>. + +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 0000000..2a0c606 --- /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 <http://www.gnu.org/licenses/>. + +package Pck is + + procedure Archive; + + type Action is (Archive, Extract); + function Get_Action return Action; + +end Pck; |