This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [RFA/testsuite] Tweak gdb.java/jmisc.java to pass on PowerPC
On Mon, Apr 01, 2002 at 11:48:14PM -0500, Daniel Jacobowitz wrote:
> On Mon, Apr 01, 2002 at 10:01:44PM -0600, Michael Elizabeth Chastain wrote:
> > Okay, I'll volunteer, but I don't have any PPC hardware. If you
> > send me a binary test program, will I be able to get somewhere with a
> > powerpc-unknown-eabi cross gdb?
> >
> > I will see if I can at least make gdb throw up instead of going into a
> > silent death spiral.
>
> I can't think how. Running Java programs requires a threads package,
> as best I can tell - if it's possible without, I can't see how...
>
> Actually, though, I figured out where the problem lies. I'll spare you
> the investigation and try to fix it myself.
Here's a revised testsuite patch. This one only adds tests, doesn't
remove any. The patch to fix the others will be in my next message.
This one better, Michael?
--
Daniel Jacobowitz Carnegie Mellon University
MontaVista Software Debian GNU/Linux Developer
2002-04-01 Daniel Jacobowitz <drow@mvista.com>
* gdb.java/jmisc.java: Add ``void foo (String[] args)''. Call it.
* gdb.java/jmisc2.java: New test.
* gdb.java/jmisc.exp (ptype jmisc): Update to match ``foo''. Add
test for jmisc2.
Index: testsuite/gdb.java/jmisc2.java
===================================================================
RCS file: N/A
diff -u /dev/null testsuite/gdb.java/jmisc2.java
--- /dev/null Wed Dec 31 19:00:00 1969
+++ testsuite/gdb.java/jmisc2.java Tue Apr 2 02:03:47 2002
@@ -0,0 +1,7 @@
+public class jmisc2
+{
+ public static void main (String[] args)
+ {
+ return;
+ }
+}
Index: testsuite/gdb.java/jmisc.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.java/jmisc.exp,v
retrieving revision 1.2
diff -u -p -r1.2 jmisc.exp
--- testsuite/gdb.java/jmisc.exp 2001/03/06 08:21:58 1.2
+++ testsuite/gdb.java/jmisc.exp 2002/04/02 07:04:23
@@ -34,6 +34,14 @@ if { [compile_java_from_source ${srcfil
return -1
}
+set testfile2 "jmisc2"
+set srcfile2 ${srcdir}/$subdir/${testfile2}.java
+set binfile2 ${objdir}/${subdir}/${testfile2}
+if { [compile_java_from_source ${srcfile2} ${binfile2} "-g"] != "" } {
+ untested "Couldn't compile ${srcfile2}"
+ return -1
+}
+
# Set the current language to java. This counts as a test. If it
# fails, then we skip the other tests.
@@ -70,7 +78,7 @@ if ![set_lang_java] then {
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]+void <init>\\(void\\);\[\r\n\ \t]+\}\[\r\n\ \t]+$gdb_prompt $" { pass "ptype jmisc" }
+ -re "type = class jmisc extends java.lang.Object \{\[\r\n\ \t\]+void foo\\(java\.lang\.String\\\[]\\);\[\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 }
}
@@ -87,5 +95,29 @@ if ![set_lang_java] then {
-re "\\\$2 = \{length: 0\}\[\r\n\ \t]+$gdb_prompt $" { pass "p *args" }
-re ".*$gdb_prompt $" { fail "p *args" }
timeout { fail "p *args (timeout)" ; return }
+ }
+}
+
+# Start a clean gdb on jmisc2
+set testfile ${testfile2}
+set srcfile ${srcfile2}
+set binfile ${binfile2}
+
+gdb_exit
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+
+if ![set_lang_java] then {
+ runto ${testfile}.main
+
+ # On architectures where arguments are passed in registers (not on the
+ # stack), if the argument to main is dead, GCJ's call to _Jv_Init may
+ # corrupt the argument pointer. Make sure GDB doesn't crash printing
+ # the (possibly corrupt) pointer.
+ send_gdb "p *args\n"
+ gdb_expect {
+ -re ".*$gdb_prompt $"
+ { pass "p *args a second time" }
+ timeout { fail "p *args a second time (timeout)" ; return }
}
}
Index: testsuite/gdb.java/jmisc.java
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.java/jmisc.java,v
retrieving revision 1.1
diff -u -p -r1.1 jmisc.java
--- testsuite/gdb.java/jmisc.java 2000/07/24 04:34:52 1.1
+++ testsuite/gdb.java/jmisc.java 2002/04/02 07:04:23
@@ -1,7 +1,12 @@
public class jmisc
{
+ public static void foo (String[] args)
+ {
+ return;
+ }
public static void main (String[] args)
{
+ foo (args);
return;
}
}