summaryrefslogtreecommitdiff
path: root/jdwp/src/test/java/org/apache/harmony
diff options
context:
space:
mode:
Diffstat (limited to 'jdwp/src/test/java/org/apache/harmony')
-rw-r--r--jdwp/src/test/java/org/apache/harmony/jpda/tests/framework/jdwp/Packet.java4
-rw-r--r--jdwp/src/test/java/org/apache/harmony/jpda/tests/framework/jdwp/PacketDispatcher.java8
-rw-r--r--jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/ReferenceType/SyntheticMethodsTest.java21
-rw-r--r--jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/share/JDWPTestCase.java2
4 files changed, 32 insertions, 3 deletions
diff --git a/jdwp/src/test/java/org/apache/harmony/jpda/tests/framework/jdwp/Packet.java b/jdwp/src/test/java/org/apache/harmony/jpda/tests/framework/jdwp/Packet.java
index ba88706..baa66e9 100644
--- a/jdwp/src/test/java/org/apache/harmony/jpda/tests/framework/jdwp/Packet.java
+++ b/jdwp/src/test/java/org/apache/harmony/jpda/tests/framework/jdwp/Packet.java
@@ -1252,6 +1252,10 @@ public class Packet {
return reading_data_index == data.length;
}
+ public int remainingData() {
+ return data.length - reading_data_index;
+ }
+
/**
* Writes value - val to the array of bytes ar[], beginning from index - to,
* size of value is - size bytes. If size is less than 8, the appropriate
diff --git a/jdwp/src/test/java/org/apache/harmony/jpda/tests/framework/jdwp/PacketDispatcher.java b/jdwp/src/test/java/org/apache/harmony/jpda/tests/framework/jdwp/PacketDispatcher.java
index feceb8f..8870845 100644
--- a/jdwp/src/test/java/org/apache/harmony/jpda/tests/framework/jdwp/PacketDispatcher.java
+++ b/jdwp/src/test/java/org/apache/harmony/jpda/tests/framework/jdwp/PacketDispatcher.java
@@ -33,6 +33,7 @@ import java.util.Hashtable;
import org.apache.harmony.jpda.tests.framework.LogWriter;
import org.apache.harmony.jpda.tests.framework.TestOptions;
+import org.apache.harmony.jpda.tests.framework.jdwp.JDWPCommands.EventCommandSet;
import org.apache.harmony.jpda.tests.framework.jdwp.exceptions.TimeoutException;
/**
@@ -554,7 +555,12 @@ public class PacketDispatcher extends Thread {
EventPacket eventPacket = new EventPacket(packet);
// below is to check received events for correctness
- // below is trace for received events
+ // Check this is indeed an Event (this could be a JDWP extension)
+ // If it is not, ignore it.
+ if (eventPacket.getCommandSet() != EventCommandSet.CommandSetID) {
+ continue;
+ }
+
ParsedEvent[] parsedEvents = ParsedEvent
.parseEventPacket(eventPacket);
if ((eventRequestIDForTrace >= 0)
diff --git a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/ReferenceType/SyntheticMethodsTest.java b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/ReferenceType/SyntheticMethodsTest.java
index 158b072..8effa0c 100644
--- a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/ReferenceType/SyntheticMethodsTest.java
+++ b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/ReferenceType/SyntheticMethodsTest.java
@@ -37,6 +37,20 @@ public class SyntheticMethodsTest extends JDWPSyncTestCase {
return SyntheticMembersDebuggee.class.getName();
}
+ private boolean doesDebuggeeClassUseNestAnnotation() {
+ // If the nest group annotations are used in SyntheticMembersDebuggee, then its nest group
+ // will contain at least one other member (SyntheticMembersDebuggee.InnerClass). Without the
+ // annotations, the group would only have SyntheticMembersDebuggee.
+ Class debuggee = SyntheticMembersDebuggee.class;
+ Class[] members = debuggee.getNestMembers();
+ for (Class member : members) {
+ if (member != debuggee) {
+ return true;
+ }
+ }
+ return false;
+ }
+
/**
* This testcase exercises ReferenceType.Methods command.
*
@@ -109,7 +123,12 @@ public class SyntheticMethodsTest extends JDWPSyncTestCase {
}
assertAllDataRead(methodsReply);
- assertTrue("Did not find any synthetic method", foundSyntheticMethod);
+ if (doesDebuggeeClassUseNestAnnotation()) {
+ assertFalse("Found synthetic methods when nest group information is available",
+ foundSyntheticMethod);
+ } else {
+ assertTrue("Did not find any synthetic method", foundSyntheticMethod);
+ }
synchronizer.sendMessage(JPDADebuggeeSynchronizer.SGNL_CONTINUE);
logWriter.println("==> " + thisTestName + " for " + commandName + ": FINISH");
diff --git a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/share/JDWPTestCase.java b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/share/JDWPTestCase.java
index e89b49b..28bf275 100644
--- a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/share/JDWPTestCase.java
+++ b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/share/JDWPTestCase.java
@@ -765,7 +765,7 @@ public abstract class JDWPTestCase extends JDWPRawTestCase {
if (reply.isAllDataRead()) {
return; // OK
}
- printErrorAndFail("Not all data has been read");
+ printErrorAndFail("Not all data has been read, remaining=" + reply.remainingData());
}
/**