merge in nyc-mr1-release history after reset to nyc-mr1-dev
diff --git a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/ReferenceType/GetValues006Debuggee.java b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/ReferenceType/GetValues006Debuggee.java
new file mode 100644
index 0000000..c0df0b9
--- /dev/null
+++ b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/ReferenceType/GetValues006Debuggee.java
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.harmony.jpda.tests.jdwp.ReferenceType;
+
+import org.apache.harmony.jpda.tests.share.JPDADebuggeeSynchronizer;
+import org.apache.harmony.jpda.tests.share.SyncDebuggee;
+
+public class GetValues006Debuggee extends SyncDebuggee {
+
+ @Override
+ public void run() {
+ logWriter.println("--> Debuggee: GetValues006Debuggee: START");
+
+ GetValues006Interface instance = new GetValues006Implementer();
+
+ synchronizer.sendMessage(JPDADebuggeeSynchronizer.SGNL_READY);
+ synchronizer.receiveMessage(JPDADebuggeeSynchronizer.SGNL_CONTINUE);
+ logWriter.println("--> Debuggee: GetValues006Debuggee: FINISH");
+ }
+
+ public static void main(String [] args) {
+ runDebuggee(GetValues006Debuggee.class);
+ }
+}
+
+interface GetValues006Interface {
+ static int interfaceStaticIntVar = 1;
+}
+
+class GetValues006Implementer implements GetValues006Interface {
+}
diff --git a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/ReferenceType/GetValues006Test.java b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/ReferenceType/GetValues006Test.java
new file mode 100644
index 0000000..30e600a
--- /dev/null
+++ b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/ReferenceType/GetValues006Test.java
@@ -0,0 +1,99 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.harmony.jpda.tests.jdwp.ReferenceType;
+
+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.framework.jdwp.Value;
+import org.apache.harmony.jpda.tests.jdwp.share.JDWPSyncTestCase;
+import org.apache.harmony.jpda.tests.share.JPDADebuggeeSynchronizer;
+
+
+/**
+ * JDWP Unit test for ReferenceType.GetValues command for static field of interface class.
+ */
+public class GetValues006Test extends JDWPSyncTestCase {
+
+ @Override
+ protected String getDebuggeeClassName() {
+ return GetValues006Debuggee.class.getName();
+ }
+
+ /**
+ * This tests the ReferenceType.GetValues command on the static field of an interface.
+ * <BR>The test starts GetValues006Debuggee and checks that the ReferenceType.GetValues
+ * command runs correctly for a static field declared in an interface.
+ * <BR>Test checks that expected value of this field is returned.
+ */
+ public void testGetValues006() {
+ String thisTestName = "testGetValues006";
+ logWriter.println("==> " + thisTestName +
+ " for ReferenceType.GetValues command: START...");
+ synchronizer.receiveMessage(JPDADebuggeeSynchronizer.SGNL_READY);
+
+ logWriter.println("\n=> Get debuggeeRefTypeID for debuggee class = "
+ + getDebuggeeClassName() + "...");
+ long debuggeeRefTypeID = getClassIDBySignature(getDebuggeeClassSignature());
+ logWriter.println("=> debuggeeRefTypeID = " + debuggeeRefTypeID);
+
+ logWriter.println(
+ "\n=> Get implementerRefTypeID for implementer = GetValues006Implementer...");
+ long implementerRefTypeID =
+ getClassIDBySignature(getClassSignature(GetValues006Interface.class));
+ logWriter.println("=> implementerRefTypeID = " + implementerRefTypeID);
+
+ logWriter.println("\n=> Get interfaceFieldID for field of interface class...");
+ String interfaceFieldName = "interfaceStaticIntVar";
+ long interfaceFieldID = checkField(implementerRefTypeID, interfaceFieldName);
+ logWriter.println("=> interfaceFieldID = " + interfaceFieldID);
+
+ logWriter.println("\n=> CHECK ReferenceType::GetValues command for implementerRefTypeID," +
+ " interfaceFieldID...");
+ CommandPacket getValuesCommand = new CommandPacket(
+ JDWPCommands.ReferenceTypeCommandSet.CommandSetID,
+ JDWPCommands.ReferenceTypeCommandSet.GetValuesCommand);
+ getValuesCommand.setNextValueAsReferenceTypeID(implementerRefTypeID);
+ getValuesCommand.setNextValueAsInt(1);
+ getValuesCommand.setNextValueAsFieldID(interfaceFieldID);
+ ReplyPacket getValuesReply = debuggeeWrapper.vmMirror.performCommand(getValuesCommand);
+ checkReplyPacket(getValuesReply, "ReferenceType::GetValues command");
+
+ getValuesReply.getNextValueAsInt();
+ Value fieldValue = getValuesReply.getNextValueAsValue();
+ byte fieldTag = fieldValue.getTag();
+ logWriter.println("=> Returned value tag = " + fieldTag
+ + "(" + JDWPConstants.Tag.getName(fieldTag) + ")");
+ assertTagEquals("Invalid value tag is returned,", JDWPConstants.Tag.INT_TAG, fieldTag);
+
+ int intValue = fieldValue.getIntValue();
+ logWriter.println("=> Returned value = " + intValue);
+ // here expected value = 1 (staticIntField)
+ int expectedIntValue = 1;
+ assertEquals("Invalid int value,", expectedIntValue, intValue);
+
+ assertAllDataRead(getValuesReply);
+
+ logWriter.println("=> CHECK PASSED: Expected value is returned!");
+
+ synchronizer.sendMessage(JPDADebuggeeSynchronizer.SGNL_CONTINUE);
+ logWriter.println("==> " + thisTestName + " for ReferenceType::GetValues command: FINISH");
+ }
+}
diff --git a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/ReferenceType/GetValues007Debuggee.java b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/ReferenceType/GetValues007Debuggee.java
new file mode 100644
index 0000000..c6c19b7
--- /dev/null
+++ b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/ReferenceType/GetValues007Debuggee.java
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.harmony.jpda.tests.jdwp.ReferenceType;
+
+import org.apache.harmony.jpda.tests.share.JPDADebuggeeSynchronizer;
+import org.apache.harmony.jpda.tests.share.SyncDebuggee;
+
+public class GetValues007Debuggee extends SyncDebuggee {
+
+ @Override
+ public void run() {
+ logWriter.println("--> Debuggee: GetValues007Debuggee: START");
+
+ GetValues007Interface instance = new GetValues007Implementer();
+
+ synchronizer.sendMessage(JPDADebuggeeSynchronizer.SGNL_READY);
+ synchronizer.receiveMessage(JPDADebuggeeSynchronizer.SGNL_CONTINUE);
+ logWriter.println("--> Debuggee: GetValues007Debuggee: FINISH");
+ }
+
+ public static void main(String [] args) {
+ runDebuggee(GetValues007Debuggee.class);
+ }
+}
+
+interface GetValues007Interface {
+ static int interfaceStaticIntVar = 1;
+}
+
+class GetValues007Implementer implements GetValues007Interface {
+}
diff --git a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/ReferenceType/GetValues007Test.java b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/ReferenceType/GetValues007Test.java
new file mode 100644
index 0000000..d4bcd34
--- /dev/null
+++ b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/ReferenceType/GetValues007Test.java
@@ -0,0 +1,111 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.harmony.jpda.tests.jdwp.ReferenceType;
+
+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.framework.jdwp.Value;
+import org.apache.harmony.jpda.tests.jdwp.share.JDWPSyncTestCase;
+import org.apache.harmony.jpda.tests.share.JPDADebuggeeSynchronizer;
+
+
+/**
+ * JDWP Unit test for ReferenceType.GetValues command for static field of interface class.
+ */
+public class GetValues007Test extends JDWPSyncTestCase {
+
+ @Override
+ protected String getDebuggeeClassName() {
+ return GetValues007Debuggee.class.getName();
+ }
+
+ /**
+ * This tests the ReferenceType.GetValues command on the static field of an interface.
+ * <BR>The test starts GetValues007Debuggee and checks that the ReferenceType.GetValues
+ * command runs correctly for a static field declared in an interface.
+ * <BR>Test checks that expected value of this field is returned.
+ */
+ public void testGetValues007() {
+ String thisTestName = "testGetValues007";
+ logWriter.println("==> " + thisTestName +
+ " for ReferenceType.GetValues command: START...");
+ synchronizer.receiveMessage(JPDADebuggeeSynchronizer.SGNL_READY);
+
+ logWriter.println("\n=> Get debuggeeRefTypeID for debuggee class = "
+ + getDebuggeeClassName() + "...");
+ long debuggeeRefTypeID = getClassIDBySignature(getDebuggeeClassSignature());
+ logWriter.println("=> debuggeeRefTypeID = " + debuggeeRefTypeID);
+
+ logWriter.println(
+ "\n=> Get implementerRefTypeID for implementer = GetValues007Implementer...");
+ long implementerRefTypeID =
+ getClassIDBySignature(getClassSignature(GetValues007Interface.class));
+ logWriter.println("=> implementerRefTypeID = " + implementerRefTypeID);
+
+ logWriter.println("\n=> Get interfaceFieldID for field of interface class...");
+ String interfaceFieldName = "interfaceStaticIntVar";
+ long interfaceFieldID = checkField(implementerRefTypeID, interfaceFieldName);
+ logWriter.println("=> interfaceFieldID = " + interfaceFieldID);
+
+ logWriter.println("\n=> CHECK ClassType::SetValues command for implementerRefTypeID," +
+ " interfaceFieldID...");
+ int expectedIntValue = 2;
+ CommandPacket setValuesCommand = new CommandPacket(
+ JDWPCommands.ClassTypeCommandSet.CommandSetID,
+ JDWPCommands.ClassTypeCommandSet.SetValuesCommand);
+ setValuesCommand.setNextValueAsClassID(implementerRefTypeID);
+ setValuesCommand.setNextValueAsInt(1);
+ setValuesCommand.setNextValueAsFieldID(interfaceFieldID);
+ setValuesCommand.setNextValueAsInt(expectedIntValue);
+ ReplyPacket reply = debuggeeWrapper.vmMirror.performCommand(setValuesCommand);
+ checkReplyPacket(reply, "ClassType::SetValues command");
+
+ logWriter.println("\n=> CHECK ReferenceType::GetValues command for implementerRefTypeID," +
+ " interfaceFieldID...");
+ CommandPacket getValuesCommand = new CommandPacket(
+ JDWPCommands.ReferenceTypeCommandSet.CommandSetID,
+ JDWPCommands.ReferenceTypeCommandSet.GetValuesCommand);
+ getValuesCommand.setNextValueAsReferenceTypeID(implementerRefTypeID);
+ getValuesCommand.setNextValueAsInt(1);
+ getValuesCommand.setNextValueAsFieldID(interfaceFieldID);
+ ReplyPacket getValuesReply = debuggeeWrapper.vmMirror.performCommand(getValuesCommand);
+ checkReplyPacket(getValuesReply, "ReferenceType::GetValues command");
+
+ getValuesReply.getNextValueAsInt();
+ Value fieldValue = getValuesReply.getNextValueAsValue();
+ byte fieldTag = fieldValue.getTag();
+ logWriter.println("=> Returned value tag = " + fieldTag
+ + "(" + JDWPConstants.Tag.getName(fieldTag) + ")");
+ assertTagEquals("Invalid value tag is returned,", JDWPConstants.Tag.INT_TAG, fieldTag);
+
+ int intValue = fieldValue.getIntValue();
+ logWriter.println("=> Returned value = " + intValue);
+ // here expected value = 2 (staticIntField)
+ assertEquals("Invalid int value,", expectedIntValue, intValue);
+
+ assertAllDataRead(getValuesReply);
+
+ logWriter.println("=> CHECK PASSED: Expected value is returned!");
+
+ synchronizer.sendMessage(JPDADebuggeeSynchronizer.SGNL_CONTINUE);
+ logWriter.println("==> " + thisTestName + " for ReferenceType::GetValues command: FINISH");
+ }
+}
diff --git a/jdwp/src/test/java/org/apache/harmony/jpda/tests/share/AllTests.java b/jdwp/src/test/java/org/apache/harmony/jpda/tests/share/AllTests.java
index 5618247..44e4211 100644
--- a/jdwp/src/test/java/org/apache/harmony/jpda/tests/share/AllTests.java
+++ b/jdwp/src/test/java/org/apache/harmony/jpda/tests/share/AllTests.java
@@ -163,6 +163,8 @@
suite.addTestSuite(org.apache.harmony.jpda.tests.jdwp.ReferenceType.GetValues003Test.class);
suite.addTestSuite(org.apache.harmony.jpda.tests.jdwp.ReferenceType.GetValues004Test.class);
suite.addTestSuite(org.apache.harmony.jpda.tests.jdwp.ReferenceType.GetValues005Test.class);
+ suite.addTestSuite(org.apache.harmony.jpda.tests.jdwp.ReferenceType.GetValues006Test.class);
+ suite.addTestSuite(org.apache.harmony.jpda.tests.jdwp.ReferenceType.GetValues007Test.class);
suite.addTestSuite(org.apache.harmony.jpda.tests.jdwp.ReferenceType.GetValuesTest.class);
suite.addTestSuite(org.apache.harmony.jpda.tests.jdwp.ReferenceType.InstancesTest.class);
suite.addTestSuite(org.apache.harmony.jpda.tests.jdwp.ReferenceType.InterfacesTest.class);