15f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes/*
25f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * Licensed to the Apache Software Foundation (ASF) under one or more
35f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * contributor license agreements.  See the NOTICE file distributed with
45f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * this work for additional information regarding copyright ownership.
55f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * The ASF licenses this file to You under the Apache License, Version 2.0
65f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * (the "License"); you may not use this file except in compliance with
75f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * the License.  You may obtain a copy of the License at
85f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes *
95f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes *     http://www.apache.org/licenses/LICENSE-2.0
105f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes *
115f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes *  Unless required by applicable law or agreed to in writing, software
125f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes *  distributed under the License is distributed on an "AS IS" BASIS,
135f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
145f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes *
155f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes *  See the License for the specific language governing permissions and
165f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes *  limitations under the License.
175f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */
185f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
195f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes/**
205f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @author Anatoly F. Bondarenko
215f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */
225f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
235f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes/**
245f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * Created on 11.03.2005
255f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */
265f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughespackage org.apache.harmony.jpda.tests.jdwp.ObjectReference;
275f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
285f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughesimport org.apache.harmony.jpda.tests.framework.jdwp.CommandPacket;
295f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughesimport org.apache.harmony.jpda.tests.framework.jdwp.JDWPCommands;
305f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughesimport org.apache.harmony.jpda.tests.framework.jdwp.JDWPConstants;
315f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughesimport org.apache.harmony.jpda.tests.framework.jdwp.ReplyPacket;
325f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughesimport org.apache.harmony.jpda.tests.framework.jdwp.Value;
335f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughesimport org.apache.harmony.jpda.tests.jdwp.share.JDWPSyncTestCase;
345f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughesimport org.apache.harmony.jpda.tests.share.JPDADebuggeeSynchronizer;
355f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
365f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
375f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes/**
385f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * JDWP Unit test for ObjectReference.GetValues command for static fields.
395f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */
405f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughespublic class GetValues002Test extends JDWPSyncTestCase {
415f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
425f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    static final String thisCommandName = "ObjectReference::GetValues command";
435f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    static final String debuggeeSignature = "Lorg/apache/harmony/jpda/tests/jdwp/ObjectReference/GetValues002Debuggee;";
445f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
45e1833aa2673d4f975ad35e7a39317feeea922fe1Sebastien Hertz    @Override
465f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    protected String getDebuggeeClassName() {
475f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        return "org.apache.harmony.jpda.tests.jdwp.ObjectReference.GetValues002Debuggee";
485f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    }
495f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
505f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    /**
515f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes     * This test exercises ObjectReference.GetValues command for static fields.
525f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes     * <BR>The test starts GetValues002Debuggee class, gets objectID
535f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes     * as value of static field of this class which (field) represents checked object.
545f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes     * Then for this objectID test executes ObjectReference.GetValues command for special
555f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes     * set of fieldIDs and checks that command returns expected jdwpTags for all checked
565f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes     * fields and expected values for primitive fields.
575f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes     */
585f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    public void testGetValues002() {
595f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        String thisTestName = "testGetValues002";
605f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        logWriter.println("==> " + thisTestName + " for " + thisCommandName + ": START...");
615f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        synchronizer.receiveMessage(JPDADebuggeeSynchronizer.SGNL_READY);
625f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
635f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        long refTypeID = getClassIDBySignature(debuggeeSignature);
645f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
655f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        logWriter.println("=> Debuggee class = " + getDebuggeeClassName());
665f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        logWriter.println("=> referenceTypeID for Debuggee class = " + refTypeID);
675f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
685f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        String checkedFieldNames[] = {
695f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                "getValues002DebuggeeField",
705f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
715f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                "staticLongField",
725f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                "staticIntField",
735f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                "staticStringField",
745f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                "staticObjectField",
755f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                "staticBooleanField",
765f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                "staticByteField",
775f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                "staticCharField",
785f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                "staticShortField",
795f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                "staticFloatField",
805f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                "staticDoubleField",
815f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                "staticArrayField",
825f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                };
835f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        long checkedFieldIDs[] = checkFields(refTypeID, checkedFieldNames);
845f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        int checkedFieldsNumber = checkedFieldNames.length;
855f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
865f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        logWriter.println
875f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        ("=> Send ReferenceType::GetValues command and and get ObjectID to check...");
885f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
895f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        CommandPacket getValuesCommand = new CommandPacket(
905f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                JDWPCommands.ReferenceTypeCommandSet.CommandSetID,
915f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                JDWPCommands.ReferenceTypeCommandSet.GetValuesCommand);
925f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        getValuesCommand.setNextValueAsReferenceTypeID(refTypeID);
935f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        getValuesCommand.setNextValueAsInt(1);
945f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        getValuesCommand.setNextValueAsFieldID(checkedFieldIDs[0]);
955f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
965f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        ReplyPacket getValuesReply = debuggeeWrapper.vmMirror.performCommand(getValuesCommand);
975f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        getValuesCommand = null;
985f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        checkReplyPacket(getValuesReply, "ReferenceType::GetValues command");
995f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1005f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        int returnedValuesNumber = getValuesReply.getNextValueAsInt();
1015f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        logWriter.println("=> Returned values number = " + returnedValuesNumber);
1025f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        assertEquals("Invalid number of values,", 1, returnedValuesNumber);
1035f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1045f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        Value checkedObjectFieldValue = getValuesReply.getNextValueAsValue();
1055f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        byte checkedObjectFieldTag = checkedObjectFieldValue.getTag();
1065f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        logWriter.println("=> Returned field value tag for checked object= " + checkedObjectFieldTag
1075f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            + "(" + JDWPConstants.Tag.getName(checkedObjectFieldTag) + ")");
1085f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        assertEquals("Invalid value tag for checked object,", JDWPConstants.Tag.OBJECT_TAG, checkedObjectFieldTag
1095f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                , JDWPConstants.Tag.getName(JDWPConstants.Tag.OBJECT_TAG)
1105f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                , JDWPConstants.Tag.getName(checkedObjectFieldTag));
1115f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1125f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        long checkedObjectID = checkedObjectFieldValue.getLongValue();
1135f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        logWriter.println("=> Returned checked ObjectID = " + checkedObjectID);
1145f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        logWriter.println("=> CHECK: send " + thisCommandName + " for this ObjectID and check reply...");
1155f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1165f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        CommandPacket checkedCommand = new CommandPacket(
1175f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                JDWPCommands.ObjectReferenceCommandSet.CommandSetID,
1185f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                JDWPCommands.ObjectReferenceCommandSet.GetValuesCommand);
1195f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        checkedCommand.setNextValueAsObjectID(checkedObjectID);
1205f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        checkedCommand.setNextValueAsInt(checkedFieldsNumber-1);
1215f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        int fieldIndex = 1; // !!!
1225f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        for (; fieldIndex < checkedFieldsNumber; fieldIndex++) {
1235f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            checkedCommand.setNextValueAsFieldID(checkedFieldIDs[fieldIndex]);
1245f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
1255f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1265f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        ReplyPacket checkedReply = debuggeeWrapper.vmMirror.performCommand(checkedCommand);
1275f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        checkedCommand = null;
1285f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        checkReplyPacket(checkedReply, thisCommandName);
1295f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1305f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        returnedValuesNumber = checkedReply.getNextValueAsInt();
1315f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        logWriter.println("=> Returned values number = " + returnedValuesNumber);
1325f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        assertEquals("Invalid number of values,", checkedFieldsNumber - 1, returnedValuesNumber);
1335f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1345f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        byte expectedFieldTags[] = {
1355f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                0, // dummy
1365f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                JDWPConstants.Tag.LONG_TAG,
1375f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                JDWPConstants.Tag.INT_TAG,
1385f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                JDWPConstants.Tag.STRING_TAG,
1395f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                JDWPConstants.Tag.OBJECT_TAG,
1405f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                JDWPConstants.Tag.BOOLEAN_TAG,
1415f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                JDWPConstants.Tag.BYTE_TAG,
1425f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                JDWPConstants.Tag.CHAR_TAG,
1435f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                JDWPConstants.Tag.SHORT_TAG,
1445f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                JDWPConstants.Tag.FLOAT_TAG,
1455f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                JDWPConstants.Tag.DOUBLE_TAG,
1465f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                JDWPConstants.Tag.ARRAY_TAG,
1475f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        };
1485f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1495f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        logWriter.println("=> CHECK for returned values...");
1505f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        fieldIndex = 1; // !!!
1515f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        for (; fieldIndex < checkedFieldsNumber; fieldIndex++) {
1525f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            Value fieldValue = checkedReply.getNextValueAsValue();
1535f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            byte fieldTag = fieldValue.getTag();
1545f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            logWriter.println
1555f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            ("\n=> Check for returned value for field: " + checkedFieldNames[fieldIndex] + " ...");
1565f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            logWriter.println("=> Returned value tag = " + fieldTag
1575f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                + "(" + JDWPConstants.Tag.getName(fieldTag) + ")");
1585f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1595f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            assertEquals("Invalid value tag is returned,", expectedFieldTags[fieldIndex], fieldTag
1605f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                    , JDWPConstants.Tag.getName(expectedFieldTags[fieldIndex])
1615f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                    , JDWPConstants.Tag.getName(fieldTag));
1625f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1635f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            switch ( fieldTag ) {
1645f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case JDWPConstants.Tag.INT_TAG:
1655f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                int intValue = fieldValue.getIntValue();
1665f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                logWriter.println("=> Int value = " + intValue);
1675f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                int expectedIntValue = 99;
1685f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                assertEquals("Invalid int value,", expectedIntValue, intValue);
1695f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                break;
1705f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case JDWPConstants.Tag.LONG_TAG:
1715f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                long longValue = fieldValue.getLongValue();
1725f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                logWriter.println("=> Long value = " + longValue);
1735f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                long expectedLongValue = 2147483647;
1745f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                assertEquals("Invalid long value,", expectedLongValue, longValue);
1755f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                break;
1765f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case JDWPConstants.Tag.STRING_TAG:
1775f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                long stringIDValue = fieldValue.getLongValue();
1785f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                logWriter.println("=> StringID value = " + stringIDValue);
1795f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                break;
1805f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case JDWPConstants.Tag.OBJECT_TAG:
1815f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                long objectIDValue = fieldValue.getLongValue();
1825f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                logWriter.println("=> ObjectID value = " + objectIDValue);
1835f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                break;
1845f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case JDWPConstants.Tag.BOOLEAN_TAG:
1855f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                boolean booleanValue = fieldValue.getBooleanValue();
1865f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                logWriter.println("=> Boolean value = " + booleanValue);
1875f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                boolean expectedBooleanValue = true;
1885f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                assertEquals("Invalid boolean value,", expectedBooleanValue, booleanValue);
1895f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                break;
1905f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case JDWPConstants.Tag.BYTE_TAG:
1915f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                byte byteValue = fieldValue.getByteValue();
1925f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                logWriter.println("=> Byte value = " + byteValue);
1935f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                byte expectedByteValue = 1;
1945f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                assertEquals("Invalid byte value,", expectedByteValue, byteValue);
1955f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                break;
1965f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case JDWPConstants.Tag.CHAR_TAG:
1975f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                char charValue = fieldValue.getCharValue();
1985f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                logWriter.println("=> Char value = " + (int)charValue);
1995f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                char expectedCharValue = 97;
2005f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                assertEquals("Invalid char value,", expectedCharValue, charValue);
2015f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                break;
2025f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case JDWPConstants.Tag.SHORT_TAG:
2035f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                short shortValue = fieldValue.getShortValue();
2045f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                logWriter.println("=> Short value = " + shortValue);
2055f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                short expectedShortValue = 2;
2065f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                assertEquals("Invalid short value,", expectedShortValue, shortValue);
2075f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                break;
2085f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case JDWPConstants.Tag.FLOAT_TAG:
2095f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                float floatValue = fieldValue.getFloatValue();
2105f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                logWriter.println("=> Float value = " + floatValue);
2115f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                float expectedFloatValue = 2;
2125f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                assertEquals("Invalid float value,", expectedFloatValue, floatValue, 0);
2135f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                break;
2145f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case JDWPConstants.Tag.DOUBLE_TAG:
2155f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                double doubleValue = fieldValue.getDoubleValue();
2165f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                logWriter.println("=> Double value = " + doubleValue);
2175f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                double expectedDoubleValue = 3.1;
2185f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                assertEquals("Invalid double value,", expectedDoubleValue, doubleValue, 0);
2195f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                break;
2205f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case JDWPConstants.Tag.ARRAY_TAG:
2215f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                long arrayIDValue = fieldValue.getLongValue();
2225f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                logWriter.println("=> ArrayID value = " + arrayIDValue);
2235f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                break;
2245f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            }
2255f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
2265f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
2275f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        assertAllDataRead(checkedReply);
2285f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
2295f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        logWriter.println
2305f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        ("=> CHECK PASSED: All expected field values are got and have expected attributes");
2315f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
2325f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        synchronizer.sendMessage(JPDADebuggeeSynchronizer.SGNL_CONTINUE);
2335f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        logWriter.println("==> " + thisTestName + " for " + thisCommandName + ": FINISH");
2345f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    }
2355f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes}
236