diff options
Diffstat (limited to 'jdwp/src/test/java/org/apache/harmony')
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()); } /** |