summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastien Hertz <shertz@google.com>2014-09-17 13:04:55 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2014-09-17 13:04:55 +0000
commit6575e82647b3f7764a30e3af8bc38c78e35e12a4 (patch)
tree18ec3d8c174f30ff32958c83eb5a7ee19ab60e4e
parent17481980a066eabc286cde983bc2716797217218 (diff)
parent5105c8df3db24dfe08d3936c7340183cc87eee69 (diff)
downloadapache-harmony-6575e82647b3f7764a30e3af8bc38c78e35e12a4.tar.gz
Merge "Test errors for StringReference.Value command"
-rw-r--r--jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/StringReference/ValueTest.java63
1 files changed, 63 insertions, 0 deletions
diff --git a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/StringReference/ValueTest.java b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/StringReference/ValueTest.java
index ed87108..778fbc0 100644
--- a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/StringReference/ValueTest.java
+++ b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/StringReference/ValueTest.java
@@ -28,7 +28,12 @@ package org.apache.harmony.jpda.tests.jdwp.StringReference;
import java.io.UnsupportedEncodingException;
+import org.apache.harmony.jpda.tests.framework.jdwp.CommandPacket;
+import org.apache.harmony.jpda.tests.framework.jdwp.JDWPCommands;
+import org.apache.harmony.jpda.tests.framework.jdwp.JDWPConstants;
+import org.apache.harmony.jpda.tests.framework.jdwp.ReplyPacket;
import org.apache.harmony.jpda.tests.jdwp.share.JDWPSyncTestCase;
+import org.apache.harmony.jpda.tests.jdwp.share.JDWPTestConstants;
import org.apache.harmony.jpda.tests.share.JPDADebuggeeSynchronizer;
@@ -79,4 +84,62 @@ public class ValueTest extends JDWPSyncTestCase {
synchronizer.sendMessage(JPDADebuggeeSynchronizer.SGNL_CONTINUE);
}
+ /**
+ * This testcase exercises StringReference.Value command.
+ * <BR>The test starts HelloWorld debuggee then checks INVALID_OBJECT error
+ * is returned if we pass a null id.
+ */
+ public void testStringReferenceValueTest001_NullString() {
+ logWriter.println("testStringReferenceValueTest001_NullString started");
+ synchronizer.receiveMessage(JPDADebuggeeSynchronizer.SGNL_READY);
+
+ checkCommandError(JDWPTestConstants.NULL_OBJECT_ID,
+ JDWPConstants.Error.INVALID_OBJECT);
+
+ synchronizer.sendMessage(JPDADebuggeeSynchronizer.SGNL_CONTINUE);
+ }
+
+ /**
+ * This testcase exercises StringReference.Value command.
+ * <BR>The test starts HelloWorld debuggee then checks INVALID_OBJECT error
+ * is returned if we pass an invalid object id.
+ */
+ public void testStringReferenceValueTest001_InvalidObject() {
+ logWriter.println("testStringReferenceValueTest001_InvalidObject started");
+ synchronizer.receiveMessage(JPDADebuggeeSynchronizer.SGNL_READY);
+
+ checkCommandError(JDWPTestConstants.INVALID_OBJECT_ID,
+ JDWPConstants.Error.INVALID_OBJECT);
+
+ synchronizer.sendMessage(JPDADebuggeeSynchronizer.SGNL_CONTINUE);
+ }
+
+ /**
+ * This testcase exercises StringReference.Value command.
+ * <BR>The test starts HelloWorld debuggee then checks INVALID_STRING error
+ * is returned if we pass a valid object id but the corresponding object
+ * is not a java.lang.String.
+ */
+ public void testStringReferenceValueTest001_InvalidString() {
+ logWriter.println("testStringReferenceValueTest001_InvalidString started");
+ synchronizer.receiveMessage(JPDADebuggeeSynchronizer.SGNL_READY);
+
+ String signature = "Lorg/apache/harmony/jpda/tests/jdwp/share/debuggee/HelloWorld;";
+ long debuggeeClassID = getClassIDBySignature(signature);
+ checkCommandError(debuggeeClassID, JDWPConstants.Error.INVALID_STRING);
+
+ synchronizer.sendMessage(JPDADebuggeeSynchronizer.SGNL_CONTINUE);
+ }
+
+ private void checkCommandError(long stringID, int expectedError) {
+ logWriter.println("Send StringReference.Value command with id " + stringID);
+
+ CommandPacket packet = new CommandPacket(
+ JDWPCommands.StringReferenceCommandSet.CommandSetID,
+ JDWPCommands.StringReferenceCommandSet.ValueCommand);
+ packet.setNextValueAsObjectID(stringID);
+ ReplyPacket reply = debuggeeWrapper.vmMirror.performCommand(packet);
+
+ checkReplyPacket(reply, "StringReference::Value command", expectedError);
+ }
}