summaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.ada
diff options
context:
space:
mode:
authorJoel Brobecker <brobecker@gnat.com>2012-03-06 17:33:30 +0000
committerJoel Brobecker <brobecker@gnat.com>2012-03-06 17:33:30 +0000
commit0b649a4c107c932bf491ceb52b721ebe1f68fe12 (patch)
tree4607fe533c0452ff26e2d681ef6cac17363b1ee2 /gdb/testsuite/gdb.ada
parent31a184b1ffc7ba795cc2f2600b1067875d6f477d (diff)
downloadgdb-0b649a4c107c932bf491ceb52b721ebe1f68fe12.tar.gz
New Ada testcase (bp_on_var.exp).
gdb/testsuite/ChangeLog: * gdb.ada/bp_on_var: New testcase.
Diffstat (limited to 'gdb/testsuite/gdb.ada')
-rw-r--r--gdb/testsuite/gdb.ada/bp_on_var.exp48
-rw-r--r--gdb/testsuite/gdb.ada/bp_on_var/foo.adb20
-rw-r--r--gdb/testsuite/gdb.ada/bp_on_var/pck.adb27
-rw-r--r--gdb/testsuite/gdb.ada/bp_on_var/pck.ads20
4 files changed, 115 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.ada/bp_on_var.exp b/gdb/testsuite/gdb.ada/bp_on_var.exp
new file mode 100644
index 00000000000..73b5cd759b3
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/bp_on_var.exp
@@ -0,0 +1,48 @@
+# 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_on_var"
+set testfile "${testdir}/foo"
+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
+}
+
+# Test inserting breakpoint on pck.my_global_variable.
+
+clean_restart ${testfile}
+
+# We are going to insert breakpoints using locations that are invalid.
+# Set "breakpoint pending" to "off" in order to avoid having to deal
+# with GDB asking whether to insert a pending breakpoint or not.
+gdb_test_no_output "set breakpoint pending off"
+
+gdb_test "break pck.my_global_variable" \
+ "Function \"pck\\.my_global_variable\" not defined\\."
+
+
+# Test inserting breakpoint on pck.my_hidden_variable.
+
+clean_restart ${testfile}
+
+gdb_test_no_output "set breakpoint pending off"
+
+gdb_test "break pck.my_hidden_variable" \
+ "Function \"pck\\.my_hidden_variable\" not defined\\."
diff --git a/gdb/testsuite/gdb.ada/bp_on_var/foo.adb b/gdb/testsuite/gdb.ada/bp_on_var/foo.adb
new file mode 100644
index 00000000000..56b75fc61bd
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/bp_on_var/foo.adb
@@ -0,0 +1,20 @@
+-- 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 Foo is
+begin
+ Do_Something (My_Global_Variable);
+end Foo;
diff --git a/gdb/testsuite/gdb.ada/bp_on_var/pck.adb b/gdb/testsuite/gdb.ada/bp_on_var/pck.adb
new file mode 100644
index 00000000000..04ecd6f2f79
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/bp_on_var/pck.adb
@@ -0,0 +1,27 @@
+-- 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
+ My_Hidden_Variable : Integer := 0;
+ procedure Do_Something (I : in out Integer) is
+ begin
+ if My_Hidden_Variable > 10 then
+ My_Hidden_Variable := 0;
+ end if;
+ I := I + My_Hidden_Variable;
+ My_Hidden_Variable := My_Hidden_Variable + 1;
+ end Do_Something;
+end Pck;
+
diff --git a/gdb/testsuite/gdb.ada/bp_on_var/pck.ads b/gdb/testsuite/gdb.ada/bp_on_var/pck.ads
new file mode 100644
index 00000000000..af77fd575cb
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/bp_on_var/pck.ads
@@ -0,0 +1,20 @@
+-- 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
+ My_Global_Variable : Integer := 11;
+ procedure Do_Something (I : in out Integer);
+end Pck;
+