diff options
author | Sebastien Hertz <shertz@google.com> | 2014-09-17 13:04:55 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2014-09-17 13:04:55 +0000 |
commit | 6575e82647b3f7764a30e3af8bc38c78e35e12a4 (patch) | |
tree | 18ec3d8c174f30ff32958c83eb5a7ee19ab60e4e | |
parent | 17481980a066eabc286cde983bc2716797217218 (diff) | |
parent | 5105c8df3db24dfe08d3936c7340183cc87eee69 (diff) | |
download | apache-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.java | 63 |
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); + } } |