diff options
author | Jan Kratochvil <jan.kratochvil@redhat.com> | 2010-07-20 22:19:07 +0000 |
---|---|---|
committer | Jan Kratochvil <jan.kratochvil@redhat.com> | 2010-07-20 22:19:07 +0000 |
commit | 569b05a56052fbdf2fa18ac7b3f4f210257f6eee (patch) | |
tree | a8e638c20e47096678eb126ae0db9f69ba3d1f81 /gdb/testsuite | |
parent | 51d7d80300853eac20339390e1ae05de71e7e1e3 (diff) | |
download | gdb-569b05a56052fbdf2fa18ac7b3f4f210257f6eee.zip gdb-569b05a56052fbdf2fa18ac7b3f4f210257f6eee.tar.gz gdb-569b05a56052fbdf2fa18ac7b3f4f210257f6eee.tar.bz2 |
gdb/
* symfile.c (find_separate_debug_file_by_debuglink): Remove
a gdb_assert call, new comment.
gdb/testsuite/
* gdb.base/solib-nodir.exp: New file.
* lib/gdb.exp (runto): New case for a GDB internal error.
Diffstat (limited to 'gdb/testsuite')
-rw-r--r-- | gdb/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/solib-nodir.exp | 54 | ||||
-rw-r--r-- | gdb/testsuite/lib/gdb.exp | 5 |
3 files changed, 64 insertions, 0 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 5beecdf..41d00e4 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,4 +1,9 @@ 2010-07-20 Jan Kratochvil <jan.kratochvil@redhat.com> + + * gdb.base/solib-nodir.exp: New file. + * lib/gdb.exp (runto): New case for a GDB internal error. + +2010-07-20 Jan Kratochvil <jan.kratochvil@redhat.com> Ulrich Weigand <uweigand@de.ibm.com> Tom Tromey <tromey@redhat.com> diff --git a/gdb/testsuite/gdb.base/solib-nodir.exp b/gdb/testsuite/gdb.base/solib-nodir.exp new file mode 100644 index 0000000..5c3f46e --- /dev/null +++ b/gdb/testsuite/gdb.base/solib-nodir.exp @@ -0,0 +1,54 @@ +# Copyright 2010 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/>. */ + +# are we on a target board +if {![isnative] || [skip_shlib_tests]} { + return +} + +set testfile "solib-nodir" +# Arbitrary file, possibly not containing main, even an empty one. +set srclibfile foo.c +# Arbitrary file containing main. +set srcfile start.c +set binlibfilebase ${testfile}.so +set binlibfiledir ${objdir}/${subdir} +set binlibfile ${binlibfiledir}/${binlibfilebase} +set executable ${testfile} +set objfile ${objdir}/${subdir}/${executable}.o +set binfile ${objdir}/${subdir}/${executable} + +# build the first test case +if { [get_compiler_info unused] + || [gdb_compile_shlib "${srcdir}/${subdir}/${srclibfile}" "${binlibfile}" [list debug additional_flags=-Wl,-soname,${binlibfilebase}]] != "" + || [gdb_gnu_strip_debug $binlibfile] + || [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${objfile}" object {debug}] != "" + || [gdb_compile "${objfile} ${binlibfile}" "${binfile}" executable {}] != "" } { + untested ${testfile}.exp + return -1 +} + +clean_restart $executable +gdb_load_shlibs ${binlibfile} + +gdb_test_no_output "set env LD_LIBRARY_PATH=:" +gdb_test "cd ${binlibfiledir}" "Working directory [string_to_regexp ${binlibfiledir}]\\." + +set test "library loaded" +if [runto_main] { + pass $test +} else { + fail $test +} diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp index 032c1c6..2f57ffb 100644 --- a/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp @@ -423,6 +423,11 @@ proc runto { function args } { unsupported "Non-stop mode not supported" return 0 } + -re ".*A problem internal to GDB has been detected" { + fail "running to $function in runto (GDB internal error)" + gdb_internal_error_resync + return 0 + } -re "$gdb_prompt $" { fail "running to $function in runto" return 0 |