Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Joel Brobecker <brobecker@adacore.com>
To: gdb-patches@sourceware.org
Subject: [PATCH 1/3] Add gdb.ada/info_addr_mixed_case new testcase
Date: Thu, 04 Jan 2018 08:36:00 -0000	[thread overview]
Message-ID: <1515054953-81012-2-git-send-email-brobecker@adacore.com> (raw)
In-Reply-To: <1515054953-81012-1-git-send-email-brobecker@adacore.com>

This patch adds a new testcase to demonstrate a regression introduced by:

    commit b5ec771e60c1a0863e51eb491c85c674097e9e13
    Date:   Wed Nov 8 14:22:32 2017 +0000
    Subject: Introduce lookup_name_info and generalize Ada's FULL/WILD name matching

The purpose of the testcase is to verify that a user can use any
casing for an Ada symbol name passed to the "info address" command.
After the patch above was applied, GDB was no longer able to find
the symbol:

    (gdb) info address My_Table
    No symbol "My_Table" in current context.

gdb/testsuite/ChangeLog:

	PR gdb/22670
	* gdb.ada/info_addr_mixed_case: New testcase.

Tested on x86_64-linux, both before and after the patch.
---
 gdb/testsuite/ChangeLog                            |  5 +++
 gdb/testsuite/gdb.ada/info_addr_mixed_case.exp     | 42 ++++++++++++++++++++++
 gdb/testsuite/gdb.ada/info_addr_mixed_case/foo.adb | 21 +++++++++++
 gdb/testsuite/gdb.ada/info_addr_mixed_case/pck.adb | 24 +++++++++++++
 gdb/testsuite/gdb.ada/info_addr_mixed_case/pck.ads | 35 ++++++++++++++++++
 5 files changed, 127 insertions(+)
 create mode 100644 gdb/testsuite/gdb.ada/info_addr_mixed_case.exp
 create mode 100644 gdb/testsuite/gdb.ada/info_addr_mixed_case/foo.adb
 create mode 100644 gdb/testsuite/gdb.ada/info_addr_mixed_case/pck.adb
 create mode 100644 gdb/testsuite/gdb.ada/info_addr_mixed_case/pck.ads

diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 500dbdd..b1be7e3 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2018-01-04  Joel Brobecker  <brobecker@adacore.com>
+
+	PR gdb/22670
+	* gdb.ada/info_addr_mixed_case: New testcase.
+
 2018-01-03  Xavier Roirand  <roirand@adacore.com>
 
 	* gdb.ada/excep_handle.exp: New testcase.
diff --git a/gdb/testsuite/gdb.ada/info_addr_mixed_case.exp b/gdb/testsuite/gdb.ada/info_addr_mixed_case.exp
new file mode 100644
index 0000000..e9fce0d
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/info_addr_mixed_case.exp
@@ -0,0 +1,42 @@
+# Copyright 2018 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"
+
+standard_ada_testfile foo
+
+if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug ]] != "" } {
+  return -1
+}
+
+clean_restart ${testfile}
+
+set bp_location [gdb_get_line_number "START" ${testdir}/foo.adb]
+if ![runto "foo.adb:$bp_location" ] then {
+  perror "Couldn't run ${testfile}"
+  return
+}
+
+# The following test exercises the situation when uppercase letters
+# are used in the name of the symbol passed to the "info address"
+# command.  This should not make a difference, as the language is
+# Ada, and Ada is case-insensitive.
+
+# commit b5ec771e60c1a0863e51eb491c85c674097e9e13 (Introduce
+# lookup_name_info and generalize Ada's FULL/WILD name matching)
+# caused the following test to fail. KFAIL it while investigating...
+setup_kfail gdb/22670 "*-*-*"
+gdb_test "info address My_Table" \
+         "Symbol \"pck\\.my_table\" is static storage at address $hex\\."
diff --git a/gdb/testsuite/gdb.ada/info_addr_mixed_case/foo.adb b/gdb/testsuite/gdb.ada/info_addr_mixed_case/foo.adb
new file mode 100644
index 0000000..0028fda
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/info_addr_mixed_case/foo.adb
@@ -0,0 +1,21 @@
+--  Copyright 2018 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_Nothing (My_Table'Address); --  START
+end Foo;
diff --git a/gdb/testsuite/gdb.ada/info_addr_mixed_case/pck.adb b/gdb/testsuite/gdb.ada/info_addr_mixed_case/pck.adb
new file mode 100644
index 0000000..2057040
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/info_addr_mixed_case/pck.adb
@@ -0,0 +1,24 @@
+--  Copyright 2018 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 Do_Nothing (A : System.Address) is
+   begin
+      null;
+   end Do_Nothing;
+
+end Pck;
+
diff --git a/gdb/testsuite/gdb.ada/info_addr_mixed_case/pck.ads b/gdb/testsuite/gdb.ada/info_addr_mixed_case/pck.ads
new file mode 100644
index 0000000..0a786cc
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/info_addr_mixed_case/pck.ads
@@ -0,0 +1,35 @@
+--  Copyright 2018 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 System;
+
+package Pck is
+
+   type Float_Array is array (Integer range <>) of Integer;
+   type Float_Ptr   is access Float_Array;
+
+   type Table_Type is (One, Two, Three, Four, Five);
+   type New_Table_Array is array (Table_Type) of Float_Ptr;
+
+   My_Table : New_Table_Array := (others => new Float_Array'((4 => 16#DE#,
+                                                              5 => 16#AD#)));
+
+   My_F : Float_Ptr := new Float_Array'(4 => 16#BE#,
+                                        5 => 16#EF#);
+
+   procedure Do_Nothing (A : System.Address);
+
+end Pck;
+
-- 
2.1.4


  parent reply	other threads:[~2018-01-04  8:36 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-04  8:36 FYI/pushed: Additional tests showing regression post C++ wild matching Joel Brobecker
2018-01-04  8:36 ` [PATCH 3/3] Add new gdb.ada/bp_c_mixed_case testcase for PR gdb/22670 Joel Brobecker
2018-01-05 16:34   ` Fix gdb.ada/bp_c_mixed_case.exp (PR gdb/22670) (Re: [PATCH 3/3] Add new gdb.ada/bp_c_mixed_case testcase for PR gdb/22670) Pedro Alves
2018-01-08  3:57     ` Joel Brobecker
2018-01-08 15:00       ` Pedro Alves
2018-01-09  9:46         ` Joel Brobecker
2018-01-09 14:59           ` Pedro Alves
2018-01-09 16:45             ` Pedro Alves
2018-01-09 17:22               ` Pedro Alves
2018-01-10  3:36               ` Joel Brobecker
2018-01-10 23:41                 ` Pedro Alves
2018-01-11  4:00                   ` Joel Brobecker
2018-01-04  8:36 ` Joel Brobecker [this message]
2018-01-04 13:25   ` [PATCH 1/3] Add gdb.ada/info_addr_mixed_case new testcase Pedro Alves
2018-01-04 18:33     ` Pedro Alves
2018-01-05  3:22       ` Joel Brobecker
2018-01-05 16:06         ` Pedro Alves
2018-01-04  8:36 ` [PATCH 2/3] Add "complete break ada" test to gdb.ada/complete.exp Joel Brobecker
2018-01-05 16:37   ` [PATCH] Fix gdb.ada/complete.exp's "complete break ada" test (PR, gdb/22670) (Re: [PATCH 2/3] Add "complete break ada" test to gdb.ada/complete.exp) Pedro Alves
2018-01-08  4:05     ` Joel Brobecker

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1515054953-81012-2-git-send-email-brobecker@adacore.com \
    --to=brobecker@adacore.com \
    --cc=gdb-patches@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox