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 Viacheslav G. Rybalov 215f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 225f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 235f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes/** 245f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * Created on 05.03.2005 255f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 265f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughespackage org.apache.harmony.jpda.tests.jdwp.ClassObjectReference; 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; 324dd7eca318c55c9c8e90ed5e89619decce73a54eSebastien Hertzimport org.apache.harmony.jpda.tests.jdwp.ClassObjectReference.AbstractReflectedTypeTestCase.TypeSignatureAndTag; 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 ClassObjectReference.ReflectedType command. 395f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 405f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 414dd7eca318c55c9c8e90ed5e89619decce73a54eSebastien Hertzpublic class ReflectedTypeTest extends AbstractReflectedTypeTestCase { 424dd7eca318c55c9c8e90ed5e89619decce73a54eSebastien Hertz 434dd7eca318c55c9c8e90ed5e89619decce73a54eSebastien Hertz private static final String DEBUGGEE_CLASS_NAME = 444dd7eca318c55c9c8e90ed5e89619decce73a54eSebastien Hertz "org.apache.harmony.jpda.tests.jdwp.share.debuggee.HelloWorld"; 455f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 465f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 475f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * Returns full name of debuggee class which is used by this test. 485f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @return full name of debuggee class. 495f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 505f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes protected String getDebuggeeClassName() { 514dd7eca318c55c9c8e90ed5e89619decce73a54eSebastien Hertz return DEBUGGEE_CLASS_NAME; 525f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 535f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 545f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 555f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * This testcase exercises ClassObjectReference.ReflectedType command. 565f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * <BR>Starts <A HREF="../share/debuggee/HelloWorld.html">HelloWorld</A> debuggee. 575f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * <BR>Then checks the following four classes: 585f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * <BR> - java/lang/Object; 595f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * <BR> - java/lang/String; 605f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * <BR> - java/lang/Runnable; 615f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * <BR> - HelloWorld. 625f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * <BR> 635f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * <BR>The following statements are checked: 645f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * <BR> It is expected: 655f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * <BR> - refTypeTag takes one of the TypeTag constants: CLASS, INTERFACE; 665f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * <BR> - refTypeTag equals to refTypeTag returned by command 675f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * VirtualMachine.ClassesBySignature; 685f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * <BR> - typeID equals to typeID returned by the JDWP command 695f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * VirtualMachine.ClassesBySignature; 705f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * <BR> - All data were read; 715f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 725f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public void testReflectedType001() { 735f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes logWriter.println("==> testReflectedType001 START..."); 745f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes synchronizer.receiveMessage(JPDADebuggeeSynchronizer.SGNL_READY); 755f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 764dd7eca318c55c9c8e90ed5e89619decce73a54eSebastien Hertz // Builds debuggee class signature string. 774dd7eca318c55c9c8e90ed5e89619decce73a54eSebastien Hertz String debuggeeClassSignature = 784dd7eca318c55c9c8e90ed5e89619decce73a54eSebastien Hertz "L" + DEBUGGEE_CLASS_NAME.replace('.', '/') + ";"; 794dd7eca318c55c9c8e90ed5e89619decce73a54eSebastien Hertz 804dd7eca318c55c9c8e90ed5e89619decce73a54eSebastien Hertz TypeSignatureAndTag[] array = new TypeSignatureAndTag[] { 814dd7eca318c55c9c8e90ed5e89619decce73a54eSebastien Hertz new TypeSignatureAndTag("Ljava/lang/Object;", 824dd7eca318c55c9c8e90ed5e89619decce73a54eSebastien Hertz JDWPConstants.TypeTag.CLASS), 834dd7eca318c55c9c8e90ed5e89619decce73a54eSebastien Hertz new TypeSignatureAndTag("Ljava/lang/String;", 844dd7eca318c55c9c8e90ed5e89619decce73a54eSebastien Hertz JDWPConstants.TypeTag.CLASS), 854dd7eca318c55c9c8e90ed5e89619decce73a54eSebastien Hertz new TypeSignatureAndTag("Ljava/lang/Runnable;", 864dd7eca318c55c9c8e90ed5e89619decce73a54eSebastien Hertz JDWPConstants.TypeTag.INTERFACE), 874dd7eca318c55c9c8e90ed5e89619decce73a54eSebastien Hertz new TypeSignatureAndTag(debuggeeClassSignature, 884dd7eca318c55c9c8e90ed5e89619decce73a54eSebastien Hertz JDWPConstants.TypeTag.CLASS) 895f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes }; 905f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 914dd7eca318c55c9c8e90ed5e89619decce73a54eSebastien Hertz runReflectedTypeTest(array); 925f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 935f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes synchronizer.sendMessage(JPDADebuggeeSynchronizer.SGNL_CONTINUE); 945f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 955f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes} 96