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 ();
next 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