diff options
author | Daniel Jacobowitz <drow@false.org> | 2006-12-31 20:01:25 +0000 |
---|---|---|
committer | Daniel Jacobowitz <drow@false.org> | 2006-12-31 20:01:25 +0000 |
commit | 2fa63963cdcc84d690264e4dcf8dd3d7fbacf7d6 (patch) | |
tree | 6c96cc87c8400a7b5f487d3941b012db495f6652 /gdb/testsuite/gdb.java | |
parent | fb70130a33bd21e42109cc11eff2d957d630f4f9 (diff) | |
download | gdb-2fa63963cdcc84d690264e4dcf8dd3d7fbacf7d6.zip gdb-2fa63963cdcc84d690264e4dcf8dd3d7fbacf7d6.tar.gz gdb-2fa63963cdcc84d690264e4dcf8dd3d7fbacf7d6.tar.bz2 |
* gdb.base/annota1.exp: Allow .*printf in backtraces.
* gdb.base/annota3.exp: Likewise.
* gdb.base/sigstep.exp (advancei): Fail if we hit the breakpoint
again (instead of timing out).
* gdb.gdb/selftest.exp (do_steps_and_nexts): Add an XFAIL for
GCC bug 26475.
* gdb.java/jmisc.exp: Adjust to work with method signatures including
return types. Add kfails for GDB bugs 2214 and 2215. Move exit
test from jmisc1.exp.
* gdb.java/jmisc1.exp: Delete.
* gdb.java/jprint.exp: Adjust to work with method signatures including
return types.
* gdb.objc/basicclass.exp: Update for gobjc 4.1 debug info.
* gdb.threads/linux-dp.exp: Don't be confused by program output.
* lib/java.exp (compile_java_from_source): Pass the correct type
to target_compile.
Diffstat (limited to 'gdb/testsuite/gdb.java')
-rw-r--r-- | gdb/testsuite/gdb.java/jmisc.exp | 52 | ||||
-rw-r--r-- | gdb/testsuite/gdb.java/jmisc1.exp | 117 | ||||
-rw-r--r-- | gdb/testsuite/gdb.java/jprint.exp | 11 |
3 files changed, 58 insertions, 122 deletions
diff --git a/gdb/testsuite/gdb.java/jmisc.exp b/gdb/testsuite/gdb.java/jmisc.exp index 9e32011..ef2426b 100644 --- a/gdb/testsuite/gdb.java/jmisc.exp +++ b/gdb/testsuite/gdb.java/jmisc.exp @@ -1,4 +1,4 @@ -# Copyright 2000, 2004 Free Software Foundation, Inc. +# Copyright 2000, 2004, 2006 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 @@ -68,11 +68,24 @@ gdb_test "set print sevenbit-strings" ".*" if ![set_lang_java] then { # Ref PR gdb:java/1565. Don't use the simpler "break jmisc.main". # As of 2004-02-24 it wasn't working and is being tested separatly. - runto "\'${testfile}.main(java.lang.String\[\])\'" + # Before GCJ 4.1 (approximately) the demangled name did not include + # a method signature; after that point it does include a trailing + # signature. + runto_main + set function "${testfile}.main(java.lang.String\[\])" + gdb_breakpoint "\'$function\'" { allow-pending } + gdb_breakpoint "\'${function}void\'" { allow-pending } + gdb_continue_to_breakpoint $function send_gdb "ptype jmisc\n" gdb_expect { - -re "type = class jmisc extends java.lang.Object \{\[\r\n\ \t]+void main\\(java\.lang\.String\\\[]\\);\[\r\n\ \t]+jmisc\\(\\);\[\r\n\ \t]+\}\[\r\n\ \t]+$gdb_prompt $" { pass "ptype jmisc" } + -re "type = class jmisc extends java.lang.Object \{\[\r\n\ \t]+void main\\(java\.lang\.String\\\[]\\);\[\r\n\ \t]+jmisc\\(\\);\[\r\n\ \t]+\}\[\r\n\ \t]+$gdb_prompt $" + { pass "ptype jmisc" } + -re "type = class jmisc extends java.lang.Object \{\[\r\n\ \t]+void main\\(java\.lang\.String\\\[]\\)void;\[\r\n\ \t]+jmisc\\(\\);\[\r\n\ \t]+\}\[\r\n\ \t]+$gdb_prompt $" { + # Just because GCC includes the signature doesn't mean we + # should print it here. We already show the return type. + kfail "ptype jmisc" gdb/2215 + } -re ".*$gdb_prompt $" { fail "ptype jmisc" } timeout { fail "ptype jmisc (timeout)" ; return } } @@ -87,7 +100,40 @@ if ![set_lang_java] then { send_gdb "p *args\n" gdb_expect { -re "\\\$2 = \{length: 0\}\[\r\n\ \t]+$gdb_prompt $" { pass "p *args" } + -re "\\\$2 = cannot find java.lang.Object.*$gdb_prompt $" { + # Sometimes GCC 4.x does not emit the necessary information + # about java.lang.Object. + kfail "p *args" gdb/2214 + } -re ".*$gdb_prompt $" { fail "p *args" } timeout { fail "p *args (timeout)" ; return } } + + # The idea of running to 'exit' is that 'exit' is in a different + # objfile from the rest of the program (provided that program is + # linked normally with a shared libc). That causes gdb to examine + # fresh objfiles. There is nothing important about 'exit' + # semantics; it could be any symbol that is in a shared library. + # -- chastain 2003-08-06 + + if [gdb_breakpoint exit] { + pass "break exit" + } + gdb_test_multiple "continue" "continue to exit" { + -re ".*Breakpoint $decimal, .*exit.*$gdb_prompt $" { + pass "continue to exit" + } + -re ".*internal-error: sect_index_text not initialized.*\\(y or n\\) " { + # gdb choked on the "anonymous objfile" (probably). + kfail "gdb/1322" "continue to exit" + # get back to the gdb prompt + gdb_test_multiple "no" "internal sync 1" { + -re ".*\\(y or n\\) " { + gdb_test_multiple "no" "internal sync 2" { + -re ".*$gdb_prompt $" { ; } + } + } + } + } + } } diff --git a/gdb/testsuite/gdb.java/jmisc1.exp b/gdb/testsuite/gdb.java/jmisc1.exp deleted file mode 100644 index dab85c8..0000000 --- a/gdb/testsuite/gdb.java/jmisc1.exp +++ /dev/null @@ -1,117 +0,0 @@ -# Copyright 2002, 2003, 2004 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 was written by Anthony Green. (green@redhat.com) -# - -if $tracelevel then { - strace $tracelevel -} - -load_lib "java.exp" - -set testfile "jmisc" -set srcfile ${srcdir}/$subdir/${testfile}.java -set binfile ${objdir}/${subdir}/${testfile} -if { [compile_java_from_source ${srcfile} ${binfile} "-g"] != "" } { - untested "Couldn't compile ${srcfile}" - return -1 -} - -# Set the current language to java. This counts as a test. If it -# fails, then we skip the other tests. - -proc set_lang_java {} { - global gdb_prompt - global binfile objdir subdir - - verbose "loading file '$binfile'" - gdb_load $binfile - - send_gdb "set language java\n" - gdb_expect { - -re ".*$gdb_prompt $" {} - timeout { fail "set language java (timeout)" ; return 0 } - } - - return [gdb_test "show language" ".* source language is \"java\".*" \ - "set language to \"java\""] -} - -set prms_id 0 -set bug_id 0 - -# Start with a fresh gdb. - -gdb_exit -gdb_start -gdb_reinitialize_dir $srcdir/$subdir - -gdb_test "set print sevenbit-strings" ".*" - -if ![set_lang_java] then { - runto ${testfile}.main(java.lang.String\[\]) - - send_gdb "ptype jmisc\n" - gdb_expect { - -re "type = class jmisc extends java.lang.Object \{\[\r\n\ \t]+void main\\(java\.lang\.String\\\[]\\);\[\r\n\ \t]+jmisc\\(\\);\[\r\n\ \t]+\}\[\r\n\ \t]+$gdb_prompt $" { pass "ptype jmisc" } - -re ".*$gdb_prompt $" { fail "ptype jmisc" } - timeout { fail "ptype jmisc (timeout)" ; return } - } - - send_gdb "p args\n" - gdb_expect { - -re "\\\$1 = java\.lang\.String\\\[]@\[a-f0-9]+\[\r\n\ \t]+$gdb_prompt $" { pass "p args" } - -re ".*$gdb_prompt $" { fail "p args" } - timeout { fail "p args (timeout)" ; return } - } - - send_gdb "p *args\n" - gdb_expect { - -re "\\\$2 = \{length: 0\}\[\r\n\ \t]+$gdb_prompt $" { pass "p *args" } - -re ".*$gdb_prompt $" { fail "p *args" } - timeout { fail "p *args (timeout)" ; return } - } - - # The idea of running to 'exit' is that 'exit' is in a different - # objfile from the rest of the program (provided that program is - # linked normally with a shared libc). That causes gdb to examine - # fresh objfiles. There is nothing important about 'exit' - # semantics; it could be any symbol that is in a shared library. - # -- chastain 2003-08-06 - - gdb_test "break exit" ".*Breakpoint $decimal at .*" - gdb_test_multiple "continue" "continue to exit" { - -re ".*Breakpoint $decimal, .*exit.*$gdb_prompt $" { - pass "continue to exit" - } - -re ".*internal-error: sect_index_text not initialized.*\\(y or n\\) " { - # gdb choked on the "anonymous objfile" (probably). - kfail "gdb/1322" "continue to exit" - # get back to the gdb prompt - gdb_test_multiple "no" "internal sync 1" { - -re ".*\\(y or n\\) " { - gdb_test_multiple "no" "internal sync 2" { - -re ".*$gdb_prompt $" { ; } - } - } - } - } - } -} diff --git a/gdb/testsuite/gdb.java/jprint.exp b/gdb/testsuite/gdb.java/jprint.exp index 0268f87..dfcde57 100644 --- a/gdb/testsuite/gdb.java/jprint.exp +++ b/gdb/testsuite/gdb.java/jprint.exp @@ -1,4 +1,4 @@ -# Copyright 2004 Free Software Foundation, Inc. +# Copyright 2004, 2006 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 @@ -65,7 +65,14 @@ gdb_test "set print sevenbit-strings" ".*" if ![set_lang_java] then { # Ref PR gdb:java/1565. Don't use the simpler "break jmisc.main". # As of 2004-02-24 it wasn't working and is being tested separatly. - runto "\'${testfile}.main(java.lang.String\[\])\'" + # Before GCJ 4.1 (approximately) the demangled name did not include + # a method signature; after that point it does include a trailing + # signature. + runto_main + set function "${testfile}.main(java.lang.String\[\])" + gdb_breakpoint "\'$function\'" { allow-pending } + gdb_breakpoint "\'${function}void\'" { allow-pending } + gdb_continue_to_breakpoint $function gdb_test "p jvclass.addprint(4,5,6)" "sum is 15\r\n.*" "unambiguous static call" |