Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Pedro Alves <palves@redhat.com>
To: GDB Patches <gdb-patches@sourceware.org>
Subject: Make jprint.exp not rely on inferior output
Date: Wed, 18 Jan 2012 19:19:00 -0000	[thread overview]
Message-ID: <4F171A1A.8050302@redhat.com> (raw)

With gdbserver, on Fedora 16, I see:

 FAIL: gdb.java/jprint.exp: unambiguous static call
 FAIL: gdb.java/jprint.exp: single argument print call
 FAIL: gdb.java/jprint.exp: double argument print call
 FAIL: gdb.java/jprint.exp: virtual fn call
 FAIL: gdb.java/jprint.exp: inherited static call
 FAIL: gdb.java/jprint.exp: inherited virtual fn call

While with a native run, I see:

 FAIL: gdb.java/jprint.exp: virtual fn call
 FAIL: gdb.java/jprint.exp: inherited virtual fn call

The problem is that the test relies on inferior output (printf/System.out.println,
which doesn't work with gdbserver.  I looked at the original email thread
introducing the patch [*], and I didn't see anything that would prevent making the
called functions return something other than void.  So instead of skipping the
test when gdb,noinferiorio is set, I adjusted it to not rely on inferior io
working.   I now get the same results gdbserver/native.

Anyone see a problem with this?

[*] http://sourceware.org/ml/gdb-patches/2004-03/msg00527.html .  The discussion
spawned several months.

gdb/testsuite/
2012-01-18  Pedro Alves  <palves@redhat.com>

	* gdb.java/jprint.exp: Don't rely on inferior output, but instead
	look at the funtions' returns.
	* gdb.java/jprint.java (jvclass.addprint, jprint.print(int))
	(jprint.print(int, int)): Change return type to int.  Adjust.

---

 gdb/testsuite/gdb.java/jprint.exp  |   12 ++++++------
 gdb/testsuite/gdb.java/jprint.java |    9 ++++++---
 2 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/gdb/testsuite/gdb.java/jprint.exp b/gdb/testsuite/gdb.java/jprint.exp
index 97660e6..131dd47 100644
--- a/gdb/testsuite/gdb.java/jprint.exp
+++ b/gdb/testsuite/gdb.java/jprint.exp
@@ -49,16 +49,16 @@ if [set_lang_java] then {
     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"
+    gdb_test "p jvclass.addprint(4,5,6)" " = 15" "unambiguous static call"

     gdb_test "next" ""
     gdb_test "next" ""

-    gdb_test "p x.print(44)" "x is 44\r\n.*" "single argument print call"
-    gdb_test "p x.print(22,33)" "y is 33\r\n.*" "double argument print call"
-    gdb_test "call x.dothat(55)" "new value is 58\r\n.*= 62.*" "virtual fn call"
-    gdb_test "p x.addprint(1,2,3)" "sum is 6\r\n.*" "inherited static call"
-    gdb_test "call x.addk(44)" "adding k gives 121\r\n.*= 121.*" "inherited virtual fn call"
+    gdb_test "p x.print(44)" " = 44" "single argument call"
+    gdb_test "p x.print(22,33)" " = 33" "double argument call"
+    gdb_test "p x.dothat(55)" " = 62.*" "virtual fn call"
+    gdb_test "p x.addprint(1,2,3)" "= 6" "inherited static call"
+    gdb_test "p x.addk(44)" " = 121" "inherited virtual fn call"

     # Regression test for a crasher.
     # GCC does not output location information for static class members,
diff --git a/gdb/testsuite/gdb.java/jprint.java b/gdb/testsuite/gdb.java/jprint.java
index 5a4a424..3d55dc3 100644
--- a/gdb/testsuite/gdb.java/jprint.java
+++ b/gdb/testsuite/gdb.java/jprint.java
@@ -27,9 +27,10 @@ class jvclass {
   static {
     k = 77;
   }
-  public static void addprint (int x, int y, int z) {
+  public static int addprint (int x, int y, int z) {
     int sum = x + y + z;
     System.out.println ("sum is " + sum);
+    return sum;
   }

   public int addk (int x) {
@@ -48,11 +49,13 @@ public class jprint extends jvclass {
     System.out.println ("new value is " + y);
     return y + 4;
   }
-  public static void print (int x) {
+  public static int print (int x) {
     System.out.println("x is " + x);
+    return x;
   }
-  public static void print (int x, int y) {
+  public static int print (int x, int y) {
     System.out.println("y is " + y);
+    return y;
   }
   public static void main(String[] args) {
     jprint x = new jprint ();


             reply	other threads:[~2012-01-18 19:15 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-01-18 19:19 Pedro Alves [this message]
2012-01-19  0:36 ` Tom Tromey
2012-01-19 12:45   ` Pedro Alves

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4F171A1A.8050302@redhat.com \
    --to=palves@redhat.com \
    --cc=gdb-patches@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox