[commit] Testsuite updates

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

[commit] Testsuite updates

Daniel Jacobowitz-2
This patch fixes or avoids a number of failures on my Debian
x86_64-pc-linux-gnu system.

I was using a HEAD build of glibc rather than the system's glibc,
in order to pick up Jan's fix for unwinding information in signal
handlers.  Having debugging information for the C library caused the
annota1.exp and annota3.exp failures.  It also led me to notice the
java.exp typo (since I set ldflags to use the new glibc, but java
applications were built without my ldflags).

The sigstep.exp patch changes a timeout into a failure.  I believe
I posted a patch for the failure some time ago.  I'll be back to it,
but this speeds up my testing a bit.

The selftest.exp patch adds an XFAIL for a GCC bug in my system
compiler, which I reported several months ago to the GCC bugzilla.
I'm not optimistic about it getting fixed soon.

I unified jmisc.exp and jmisc1.exp.  Aside from the extra test in
jmisc1.exp, the only difference was that jmisc.exp used "break
'function(args)'" and jmisc1.exp used "break function(args)", with
a signature but without single quotes.  I don't believe that form
ever worked except by accident; we definitely don't support it for C++.

I added KFAILs for some Java problems.  I am not willing to fix
them myself, especially with no one working on gcj's debugging output
at the moment, but at least this way they're in our bug tracker
if someone wants to work on them.

For ObjC, Object is now a base structure and thus shows up with an
extra pair of braces when printing values.

And finally, for linux-dp.exp, an omission in Nathan's recent change
generated UNSUPPORTEDs on native GNU/Linux systems, where the test
should pass.

All tested on x86_64-pc-linux-gnu and checked in.  I have a handful of
real failures left; I don't think I'll work on that today though.

--
Daniel Jacobowitz
CodeSourcery

2006-12-31  Daniel Jacobowitz  <[hidden email]>

        * 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.

Index: gdb.base/annota1.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/annota1.exp,v
retrieving revision 1.20
diff -u -p -r1.20 annota1.exp
--- gdb.base/annota1.exp 12 Oct 2006 19:03:22 -0000 1.20
+++ gdb.base/annota1.exp 31 Dec 2006 19:49:26 -0000
@@ -1,5 +1,5 @@
-# Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software
-# Foundation, Inc.
+# Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 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
@@ -240,15 +240,16 @@ gdb_expect {
 #
 # get to printf
 #
-send_gdb "continue\n"
-gdb_expect {
-  -re "\r\n\032\032post-prompt\r\nContinuing.\r\n\r\n\032\032starting\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032breakpoint 3\r\n\r\nBreakpoint 3, \r\n\032\032frame-begin 0 $hex\r\n\r\n(\032\032frame-address\r\n$hex\r\n\032\032frame-address-end\r\n in \r\n)*\032\032frame-function-name\r\nprintf\r\n\032\032frame-args\r\n.*\032\032frame-end\r\n\r\n\032\032stopped\r\n$gdb_prompt$" \
-  { pass "continue to printf" }
-  -re "\r\n\032\032post-prompt\r\nContinuing.\r\n\r\n\032\032starting\r\n\r\n\032\032frames-invalid\r\nwarning: Breakpoint 3 address previously adjusted from $hex to $hex.\r\n\r\n\032\032breakpoint 3\r\n\r\nBreakpoint 3, \r\n\032\032frame-begin 0 $hex\r\n\r\n(\032\032frame-address\r\n$hex\r\n\032\032frame-address-end\r\n in \r\n)*.*\032\032frame-function-name\r\n.printf\r\n\032\032frame-args\r\n.*\032\032frame-end\r\n\r\n\032\032stopped\r\n$gdb_prompt$" \
-  { pass "continue to printf" }
+set pat_begin "\r\n\032\032post-prompt\r\nContinuing.\r\n\r\n\032\032starting\r\n\r\n\032\032frames-invalid\r\n"
+set pat_adjust "warning: Breakpoint 3 address previously adjusted from $hex to $hex.\r\n"
+set pat_end "\r\n\032\032breakpoint 3\r\n\r\nBreakpoint 3, \r\n\032\032frame-begin 0 $hex\r\n\r\n(\032\032frame-address\r\n$hex\r\n\032\032frame-address-end\r\n in \r\n)*.*\032\032frame-function-name\r\n.*printf\r\n\032\032frame-args\r\n.*\032\032frame-end\r\n\r\n\032\032stopped\r\n$gdb_prompt$"
 
-  -re ".*$gdb_prompt$"     { fail "continue to printf" }
-  timeout            { fail "continue to printf (timeout)" }
+send_gdb "continue\n"
+gdb_test_multiple "continue" "continue to printf" {
+    -re "${pat_begin}($pat_adjust)?$pat_end" {
+ pass "continue to printf"
+    }
+    -re ".*$gdb_prompt$"     { fail "continue to printf" }
 }
 
 #
@@ -257,15 +258,17 @@ gdb_expect {
 # annotate-frame-address
 # annotate-frame-address-end
 #
+set pat_begin "\r\n\032\032post-prompt\r\n\r\n\032\032frame-begin 0 $hex\r\n.0  \r\n(\032\032frame-address\r\n$hex\r\n\032\032frame-address-end\r\n in \r\n)*\032\032frame-function-name\r\n.*printf\r\n\032\032frame-args\r\n \\(.*frame-end\r\n\r\n\032\032frame-begin 1 $hex\r\n.1  \r\n\032\032frame-address\r\n$hex\r\n\032\032frame-address-end\r\n in \r\n\032\032frame-function-name\r\nmain\r\n\032\032frame-args\r\n \\(\\)\r\n\032\032frame-source-begin\r\n at \r\n\032\032frame-source-file\r\n"
+set pat_end "\r\n\032\032frame-source-file-end\r\n:\r\n\032\032frame-source-line\r\n.*\r\n\032\032frame-source-end\r\n\r\n\r\n\032\032frame-end\r\n(\r\n\032\032frame-begin .*\r\n\r\n\032\032frame-end\r\n)*$gdb_prompt$"
 send_gdb "backtrace\n"
 gdb_expect {
-    -re "\r\n\032\032post-prompt\r\n\r\n\032\032frame-begin 0 $hex\r\n.0  \r\n(\032\032frame-address\r\n$hex\r\n\032\032frame-address-end\r\n in \r\n)*\032\032frame-function-name\r\nprintf\r\n\032\032frame-args\r\n \\(.*frame-end\r\n\r\n\032\032frame-begin 1 $hex\r\n.1  \r\n\032\032frame-address\r\n$hex\r\n\032\032frame-address-end\r\n in \r\n\032\032frame-function-name\r\nmain\r\n\032\032frame-args\r\n \\(\\)\r\n\032\032frame-source-begin\r\n at \r\n\032\032frame-source-file\r\n${escapedsrcfile}\r\n\032\032frame-source-file-end\r\n:\r\n\032\032frame-source-line\r\n.*\r\n\032\032frame-source-end\r\n\r\n\r\n\032\032frame-end\r\n(\r\n\032\032frame-begin .*\r\n\r\n\032\032frame-end\r\n)*$gdb_prompt$" \
+    -re "$pat_begin$escapedsrcfile$pat_end"
   { pass "backtrace from shlibrary" }
-    -re "\r\n\032\032post-prompt\r\n\r\n\032\032frame-begin 0 $hex\r\n.0  \r\n(\032\032frame-address\r\n$hex\r\n\032\032frame-address-end\r\n in \r\n)*\032\032frame-function-name\r\nprintf\r\n\032\032frame-args\r\n \\(.*frame-end\r\n\r\n\032\032frame-begin 1 $hex\r\n.1  \r\n\032\032frame-address\r\n$hex\r\n\032\032frame-address-end\r\n in \r\n\032\032frame-function-name\r\nmain\r\n\032\032frame-args\r\n \\(\\)\r\n\032\032frame-source-begin\r\n at \r\n\032\032frame-source-file\r\n.*${srcfile}\r\n\032\032frame-source-file-end\r\n:\r\n\032\032frame-source-line\r\n.*\r\n\032\032frame-source-end\r\n\r\n\r\n\032\032frame-end\r\n(\r\n\032\032frame-begin .*\r\n\r\n\032\032frame-end\r\n)*$gdb_prompt$" \
+    -re "$pat_begin.*$srcfile$pat_end"
   { setup_xfail "*-*-*" 1270
             fail "backtrace from shlibrary" }
-  -re ".*$gdb_prompt$"     { fail "backtrace from shlibrary" }
-  timeout            { fail "backtrace from shlibrary (timeout)" }
+    -re ".*$gdb_prompt$"     { fail "backtrace from shlibrary" }
+    timeout            { fail "backtrace from shlibrary (timeout)" }
 }
 
 
Index: gdb.base/annota3.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/annota3.exp,v
retrieving revision 1.9
diff -u -p -r1.9 annota3.exp
--- gdb.base/annota3.exp 10 Aug 2006 05:27:20 -0000 1.9
+++ gdb.base/annota3.exp 31 Dec 2006 19:49:26 -0000
@@ -1,4 +1,4 @@
-# Copyright 2003, 2004 Free Software Foundation, Inc.
+# Copyright 2003, 2004, 2005, 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
@@ -206,7 +206,7 @@ gdb_expect_list "continue to printf" "$g
 send_gdb "backtrace\n"
 gdb_expect_list "backtrace from shlibrary" "$gdb_prompt$" {
     "\r\n\032\032post-prompt\r\n"
-    "#0 .* printf \[^\r\n\]*\r\n"
+    "#0 .* .*printf \[^\r\n\]*\r\n"
     "#1 .* main \[^\r\n\]*\r\n"
 }
 
@@ -246,7 +246,7 @@ if [target_info exists gdb,nosignals] {
     gdb_expect_list "backtrace @ signal handler" "$gdb_prompt$" {
  "#0 +handle_USR1 \[^\r\n\]+\r\n"
  "#1 +.signal handler called.\r\n"
- "#2 .* printf \[^\r\n\]+\r\n"
+ "#2 .* .*printf \[^\r\n\]+\r\n"
  "#3 .* main \[^\r\n\]+\r\n"
     }
 }
Index: gdb.base/sigstep.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/sigstep.exp,v
retrieving revision 1.11
diff -u -p -r1.11 sigstep.exp
--- gdb.base/sigstep.exp 1 May 2006 16:39:36 -0000 1.11
+++ gdb.base/sigstep.exp 31 Dec 2006 19:49:26 -0000
@@ -1,4 +1,4 @@
-# Copyright 2004 Free Software Foundation, Inc.
+# Copyright 2004, 2005, 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
@@ -130,6 +130,9 @@ proc advancei { i } {
     setup_kfail "sparc*-*-openbsd*" gdb/1736
     fail "$test (could not insert single-step breakpoint)"
  }
+ -re "Breakpoint \[0-9\]*, handler .*${gdb_prompt} $" {
+    fail "$test (hit breakpoint again)"
+ }
  -re "done = 1;.*${gdb_prompt} $" {
     send_gdb "$i\n"
     exp_continue -continue_timer
Index: gdb.gdb/selftest.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.gdb/selftest.exp,v
retrieving revision 1.8
diff -u -p -r1.8 selftest.exp
--- gdb.gdb/selftest.exp 22 Nov 2006 17:19:52 -0000 1.8
+++ gdb.gdb/selftest.exp 31 Dec 2006 19:49:26 -0000
@@ -1,5 +1,5 @@
 # Copyright 1988, 1990, 1991, 1992, 1994, 1997, 1999, 2000, 2002,
-# 2003, 2004 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 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
@@ -40,6 +40,7 @@ proc do_steps_and_nexts {} {
 
     gdb_reinitialize_dir $srcdir/..
 
+    set unlikely_line 0
     for {set count 0} {$count < 32} {incr count} {
  send_gdb "list\n"
  # NOTE: carlton/2002-12-11: The "initial brace" and
@@ -193,6 +194,17 @@ proc do_steps_and_nexts {} {
  fail "must be able to list source lines"
  return
     }
+    -re ".*interpreter_p = xstrdup.*$gdb_prompt $" {
+ if { $unlikely_line == 0 } {
+    # This is a GCC optimization bug; a constant has been
+    # associated with the wrong line number.
+    setup_xfail "*-*-*" gcc/26475
+    fail "$description (unlikely line from gcc)"
+    set unlikely_line 1
+ }
+ set description "next over xstrdup"
+ set command "next"
+    }
     -re ".*$gdb_prompt $" {
  fail "unknown source line after $description"
  return
Index: gdb.java/jmisc.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.java/jmisc.exp,v
retrieving revision 1.4
diff -u -p -r1.4 jmisc.exp
--- gdb.java/jmisc.exp 7 Jul 2004 20:08:03 -0000 1.4
+++ gdb.java/jmisc.exp 31 Dec 2006 19:49:26 -0000
@@ -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 $" { ; }
+    }
+ }
+    }
+ }
+    }
 }
Index: gdb.java/jmisc1.exp
===================================================================
RCS file: gdb.java/jmisc1.exp
diff -N gdb.java/jmisc1.exp
--- gdb.java/jmisc1.exp 7 Jul 2004 20:08:03 -0000 1.3
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -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:
-# [hidden email]
-
-# This file was written by Anthony Green. ([hidden email])
-#
-
-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 $" { ; }
-    }
- }
-    }
- }
-    }
-}
Index: gdb.java/jprint.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.java/jprint.exp,v
retrieving revision 1.1
diff -u -p -r1.1 jprint.exp
--- gdb.java/jprint.exp 20 Sep 2004 20:06:29 -0000 1.1
+++ gdb.java/jprint.exp 31 Dec 2006 19:49:26 -0000
@@ -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"
 
Index: gdb.objc/basicclass.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.objc/basicclass.exp,v
retrieving revision 1.5
diff -u -p -r1.5 basicclass.exp
--- gdb.objc/basicclass.exp 18 Feb 2004 04:22:02 -0000 1.5
+++ gdb.objc/basicclass.exp 31 Dec 2006 19:49:26 -0000
@@ -1,4 +1,4 @@
-# Copyright 2003, 2004 Free Software Foundation, Inc.
+# Copyright 2003, 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
@@ -152,7 +152,7 @@ gdb_test "print self" \
     " print self"
 
 gdb_test "print \*self" \
-    "\\$\[0-9\] = \{isa = 0x\[0-9a-f\]+, object = 0x0\}" \
+    "\\$\[0-9\] = \{{?isa = 0x\[0-9a-f\]+}?, object = 0x0\}" \
     " print contents of self"
 
 #
Index: gdb.threads/linux-dp.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.threads/linux-dp.exp,v
retrieving revision 1.13
diff -u -p -r1.13 linux-dp.exp
--- gdb.threads/linux-dp.exp 29 Nov 2006 16:16:46 -0000 1.13
+++ gdb.threads/linux-dp.exp 31 Dec 2006 19:49:26 -0000
@@ -1,4 +1,5 @@
-# Copyright 1999, 2001, 2002, 2003 Free Software Foundation, Inc.
+# Copyright 1999, 2001, 2002, 2003, 2004, 2005, 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
@@ -93,6 +94,10 @@ for {set i 0} {$i < 5} {incr i} {
  -re "^next\r\n" {
     exp_continue
  }
+ -re "^ *\[_!\] \[0-9\]* \[_!\]\r\n" {
+    # Ignore program output.
+    exp_continue -continue_timer
+ }
  -re "^\\\[New \[^\]\n\]+\\\]\[^\n\]+\n" {
     incr threads_created
     exp_continue
Index: lib/java.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/lib/java.exp,v
retrieving revision 1.4
diff -u -p -r1.4 java.exp
--- lib/java.exp 19 Jul 2004 21:33:53 -0000 1.4
+++ lib/java.exp 31 Dec 2006 19:49:26 -0000
@@ -1,6 +1,6 @@
 # This test code is part of GDB, the GNU debugger.
 
-# Copyright 1998, 1999, 2000, 2003, 2004
+# Copyright 1998, 1999, 2000, 2003, 2004, 2006
 # Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
@@ -111,7 +111,7 @@ proc compile_java_from_source { srcfile
  set errname "$errname $compile_args"
     }
 
-    set x [target_compile $srcfile ${binfile} ${binfile} $args]
+    set x [target_compile $srcfile ${binfile} executable $args]
     if { $x != "" } {
  verbose "target_compile failed: $x" 2
  return "$errname compilation from source";
Reply | Threaded
Open this post in threaded view
|

Re: [commit] Testsuite updates

Mark Kettenis
> Date: Sun, 31 Dec 2006 15:09:05 -0500
> From: Daniel Jacobowitz <[hidden email]>
>
> This patch fixes or avoids a number of failures on my Debian
> x86_64-pc-linux-gnu system.
>
> I was using a HEAD build of glibc rather than the system's glibc,
> in order to pick up Jan's fix for unwinding information in signal
> handlers.  Having debugging information for the C library caused the
> annota1.exp and annota3.exp failures.

So continueing to printf didn't actually get is to printf?  What's
going on here?

> The selftest.exp patch adds an XFAIL for a GCC bug in my system
> compiler, which I reported several months ago to the GCC bugzilla.
> I'm not optimistic about it getting fixed soon.

A bug in *your* system compiler.  How widespread is this bug?  We
really should be careful with complicating tests to work around
problems in particular GCC versions.

> And finally, for linux-dp.exp, an omission in Nathan's recent change
> generated UNSUPPORTEDs on native GNU/Linux systems, where the test
> should pass.

Can you elaborate?  I mean, what output is genererated that should be
ignored?

Reply | Threaded
Open this post in threaded view
|

Re: [commit] Testsuite updates

Daniel Jacobowitz-2
Sorry for batching updates like that; I'll be more verbose.

On Sun, Dec 31, 2006 at 09:35:00PM +0100, Mark Kettenis wrote:
> > I was using a HEAD build of glibc rather than the system's glibc,
> > in order to pick up Jan's fix for unwinding information in signal
> > handlers.  Having debugging information for the C library caused the
> > annota1.exp and annota3.exp failures.
>
> So continueing to printf didn't actually get is to printf?  What's
> going on here?

We got to printf just fine.  But, printf is really the exported name of
__printf.  If we have only the dynamic symbol table, backtrace will
display printf; if we have debugging info, it will display __printf.
There was already some accomodation for _printf in the tests.

I think this is the work of strong_alias or attribute((alias)).

> > The selftest.exp patch adds an XFAIL for a GCC bug in my system
> > compiler, which I reported several months ago to the GCC bugzilla.
> > I'm not optimistic about it getting fixed soon.
>
> A bug in *your* system compiler.  How widespread is this bug?  We
> really should be careful with complicating tests to work around
> problems in particular GCC versions.

It's in every version of GCC after 4.0, for every platform.  It's a
pretty serious problem, too.  Here's more information, if you're
interested:

  http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26475

We have an initialization of some variable to a constant.  The internal
representation does not keep track of the location of constants, so
when it is optimized away on entry to SSA, there's no way to recover
the location.  And when it recreates the constant, it picks a most
peculiar location for it (based on where the PHI nodes are).

> > And finally, for linux-dp.exp, an omission in Nathan's recent change
> > generated UNSUPPORTEDs on native GNU/Linux systems, where the test
> > should pass.
>
> Can you elaborate?  I mean, what output is genererated that should be
> ignored?

Output from the test program, rather than GDB.  I believe Nathan was
working on our ColdFire toolchains at the time, which means he was
testing gdbserver - in which case the console output of linux-dp
doesn't show up.  But in a native configuration it's quite a noisy
program.  The pattern matches the status of the philosophers for each
thread.

--
Daniel Jacobowitz
CodeSourcery