diff options
-rw-r--r-- | gdb/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/psymtab.exp | 72 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/psymtab1.c | 4 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/psymtab2.c | 3 |
4 files changed, 85 insertions, 0 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index d799775a047..0e53319c133 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2003-01-03 David Carlton <carlton@math.stanford.edu> + + * gdb.base/psymtab.exp: New file. + * gdb.base/psymtab1.c: Ditto. + * gdb.base/psymtab2.c: Ditto. + 2002-12-23 Adam Fedor <fedor@gnu.org> * gdb.base/maint.exp: Update expect output to include 'ObjC'. diff --git a/gdb/testsuite/gdb.base/psymtab.exp b/gdb/testsuite/gdb.base/psymtab.exp new file mode 100644 index 00000000000..8c2abffa345 --- /dev/null +++ b/gdb/testsuite/gdb.base/psymtab.exp @@ -0,0 +1,72 @@ +# Copyright 2003 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 2 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, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +# Please email any bugs, comments, and/or additions to this file to: +# bug-gdb@prep.ai.mit.edu + +# This file is part of the gdb testsuite + +# This is intended to be a repository for tests that partial symbols +# are working properly. If multiple tests are added, make sure that +# you exit and restart GDB between tests. + +if $tracelevel then { + strace $tracelevel +} + +# +# test running programs +# + +set prms_id 0 +set bug_id 0 + +if { [skip_cplus_tests] } { continue } + +set testfile "psymtab" +set binfile ${objdir}/${subdir}/${testfile} + +if { [gdb_compile "${srcdir}/${subdir}/${testfile}1.c" "${testfile}1.o" object {debug}] != "" } { + gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail." +} + +if { [gdb_compile "${srcdir}/${subdir}/${testfile}2.c" "${testfile}2.o" object {debug}] != "" } { + gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail." +} + +if { [gdb_compile "${testfile}1.o ${testfile}2.o" ${binfile} executable {debug}] != "" } { + gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail." +} + +# Create and source the file that provides information about the compiler +# used to compile the test case. +if [get_compiler_info ${binfile}] { + return -1; +} + +gdb_exit +gdb_start +gdb_reinitialize_dir $srcdir/$subdir +gdb_load ${binfile} + +# This test is looking for a bug that manifested itself when GDB was +# looking for a partial symbol such that there wasn't such a partial +# symbol in the psymtab, but such that the last psym in the psymtab +# had the right name but the wrong namespace. Here, searching for +# zzz::dummy currently causes a search for 'zzz' in STRUCT_NAMESPACE +# without a preceding search for 'zzz' in VAR_NAMESPACE. + +gdb_test "break zzz::dummy" "Can't find member of namespace, class, struct, or union named \"zzz::dummy\"\r\n.*" "Don't search past end of psymtab." diff --git a/gdb/testsuite/gdb.base/psymtab1.c b/gdb/testsuite/gdb.base/psymtab1.c new file mode 100644 index 00000000000..1482f27e53c --- /dev/null +++ b/gdb/testsuite/gdb.base/psymtab1.c @@ -0,0 +1,4 @@ +int main () +{ + return 0; +} diff --git a/gdb/testsuite/gdb.base/psymtab2.c b/gdb/testsuite/gdb.base/psymtab2.c new file mode 100644 index 00000000000..eeaa5eda55d --- /dev/null +++ b/gdb/testsuite/gdb.base/psymtab2.c @@ -0,0 +1,3 @@ +extern int zzz; + +int zzz = 123; |