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 17.02.2005 255f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 265f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughespackage org.apache.harmony.jpda.tests.jdwp.ReferenceType; 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.ReplyPacket; 315f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughesimport org.apache.harmony.jpda.tests.jdwp.share.JDWPSyncTestCase; 325f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughesimport org.apache.harmony.jpda.tests.share.JPDADebuggeeSynchronizer; 335f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 345f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 355f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes/** 365f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * JDWP Unit test for ReferenceType.Modifiers command. 375f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 385f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughespublic class ModifiersTest extends JDWPSyncTestCase { 395f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 405f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes static final int testStatusPassed = 0; 415f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes static final int testStatusFailed = -1; 425f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes static final String thisCommandName = "ReferenceType.Modifiers command"; 435f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes static final String debuggeeSignature = "Lorg/apache/harmony/jpda/tests/jdwp/share/debuggee/HelloWorld;"; 44d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban static final String debuggeeInterfaceSignature = "Lorg/apache/harmony/jpda/tests/jdwp/share/debuggee/HelloWorldInterface;"; 45d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban static final String debuggeeInterfaceClassName = "org.apache.harmony.jpda.tests.jdwp.share.debuggee.HelloWorldInterface"; 465f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 475f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes protected String getDebuggeeClassName() { 485f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes return "org.apache.harmony.jpda.tests.jdwp.share.debuggee.HelloWorld"; 495f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 505f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 515f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 525f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * This testcase exercises ReferenceType.Modifiers command. 535f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * <BR>The test starts HelloWorld debuggee, requests referenceTypeId 545f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * for it by VirtualMachine.ClassesBySignature command, then 555f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * performs ReferenceType.Modifiers command and checks that returned 565f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * Modifiers contain expected flags: ACC_PUBLIC, ACC_SUPER; 575f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * but do NOT contain flags: ACC_FINAL, ACC_INTERFACE, ACC_ABSTRACT 585f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 595f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public void testModifiers001() { 605f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes String thisTestName = "testModifiers001"; 615f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes logWriter.println("==> " + thisTestName + " for " + thisCommandName + ": START..."); 625f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes String failMessage = ""; 635f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes synchronizer.receiveMessage(JPDADebuggeeSynchronizer.SGNL_READY); 645f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 655f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes long refTypeID = getClassIDBySignature(debuggeeSignature); 665f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 675f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes logWriter.println("=> Debuggee class = " + getDebuggeeClassName()); 685f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes logWriter.println("=> referenceTypeID for Debuggee class = " + refTypeID); 695f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes logWriter.println("=> CHECK1: send " + thisCommandName + " and check reply..."); 705f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 715f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes CommandPacket modifiersCommand = new CommandPacket( 725f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes JDWPCommands.ReferenceTypeCommandSet.CommandSetID, 735f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes JDWPCommands.ReferenceTypeCommandSet.ModifiersCommand); 745f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes modifiersCommand.setNextValueAsReferenceTypeID(refTypeID); 755f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 765f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes ReplyPacket modifiersReply = debuggeeWrapper.vmMirror.performCommand(modifiersCommand); 775f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes modifiersCommand = null; 785f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes checkReplyPacket(modifiersReply, thisCommandName); 795f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 805f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes int returnedModifiers = modifiersReply.getNextValueAsInt(); 815f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes/* 825f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * The value of the access_flags item is a mask of modifiers used with class and 835f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * interface declarations. The access_flags modifiers are: 845f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * Flag Name Value Meaning Used By 855f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * ACC_PUBLIC 0x0001 Is public; may be accessed from outside its package. Class, interface 865f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * ACC_FINAL 0x0010 Is final; no subclasses allowed. Class 875f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * ACC_SUPER 0x0020 Treat superclass methods specially in invokespecial. Class, interface 885f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * ACC_INTERFACE 0x0200 Is an interface. Interface 895f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * ACC_ABSTRACT 0x0400 Is abstract; may not be instantiated. Class, interface 905f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 915f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes logWriter.println("=> Returned modifiers = 0x" + Integer.toHexString(returnedModifiers)); 925f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 935f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes int publicFlag = 0x0001; // expected 945f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes int finalFlag = 0x0010; // unexpected 955f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes int superFlag = 0x0020; // expected 965f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes int interfaceFlag = 0x0200; // unexpected 975f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes int abstractFlag = 0x0400; // unexpected 985f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 995f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes if ( (returnedModifiers & publicFlag) == 0 ) { 1005f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes logWriter.println 1015f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes ("## CHECK1: FAILURE: Returned modifiers do NOT contain expected ACC_PUBLIC flag(0x0001)"); 1025f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes failMessage = failMessage + 1035f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes "Returned modifiers do NOT contain expected ACC_PUBLIC flag(0x0001);\n"; 1045f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 1055f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes if ( (returnedModifiers & superFlag) == 0 ) { 1065f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes logWriter.println 1075f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes ("## CHECK1: FAILURE: Returned modifiers do NOT contain expected ACC_SUPER flag(0x0020)"); 1085f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes failMessage = failMessage + 1095f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes "Returned modifiers do NOT contain expected ACC_SUPER flag(0x0020);\n"; 1105f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 1115f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes if ( (returnedModifiers & finalFlag) != 0 ) { 1125f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes logWriter.println 1135f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes ("## CHECK1: FAILURE: Returned modifiers contain unexpected ACC_FINAL flag(0x0010)"); 1145f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes failMessage = failMessage + 1155f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes "Returned modifiers contain unexpected ACC_FINAL flag(0x0010);\n"; 1165f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 1175f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes if ( (returnedModifiers & interfaceFlag) != 0 ) { 1185f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes logWriter.println 1195f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes ("## CHECK1: FAILURE: Returned modifiers contain unexpected ACC_INTERFACE flag(0x0200)"); 1205f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes failMessage = failMessage + 1215f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes "Returned modifiers contain unexpected ACC_INTERFACE flag(0x0200);\n"; 1225f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 1235f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes if ( (returnedModifiers & abstractFlag) != 0 ) { 1245f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes logWriter.println 1255f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes ("## CHECK1: FAILURE: Returned modifiers contain unexpected ACC_ABSTRACT flag(0x0400)"); 1265f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes failMessage = failMessage + 1275f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes "Returned modifiers contain unexpected ACC_ABSTRACT flag(0x0400);\n"; 1285f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 1295f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 1305f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes synchronizer.sendMessage(JPDADebuggeeSynchronizer.SGNL_CONTINUE); 1315f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes logWriter.println("==> " + thisTestName + " for " + thisCommandName + ": FINISH"); 1325f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 1335f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes if (failMessage.length() > 0) { 1345f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes fail(failMessage); 135d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban } else { 136d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban logWriter.println 137d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban ("=> CHECK1: PASSED: expected modifiers are returned: ACC_PUBLIC flag(0x0001), ACC_SUPER flag(0x0020)"); 138d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban } 139d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban 140d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban assertAllDataRead(modifiersReply); 141d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban } 142d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban 143d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban /** 144d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban * This testcase exercises ReferenceType.Modifiers command. 145d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban * <BR>The test starts HelloWorld debuggee, requests referenceTypeId 146d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban * for an interface HelloWorldInterface by VirtualMachine.ClassesBySignature command, 147d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban * then performs ReferenceType.Modifiers command and checks that returned 148d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban * Modifiers contain expected flags: ACC_ABSTRACT, ACC_INTERFACE; 149d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban * but do NOT contain flags: ACC_PUBLIC, ACC_FINAL, ACC_SUPER, ACC_ABSTRACT 150d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban */ 151d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban public void testModifiers002() { 152d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban String thisTestName = "testModifiers002"; 153d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban logWriter.println("==> " + thisTestName + " for " + thisCommandName + ": START..."); 154d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban String failMessage = ""; 155d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban synchronizer.receiveMessage(JPDADebuggeeSynchronizer.SGNL_READY); 156d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban 157d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban long refTypeID = getClassIDBySignature(debuggeeInterfaceSignature); 158d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban 159d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban logWriter.println("=> Debuggee Interface class = " + debuggeeInterfaceClassName); 160d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban logWriter.println("=> referenceTypeID for Debuggee interface = " + refTypeID); 161d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban logWriter.println("=> CHECK1: send " + thisCommandName + " and check reply..."); 162d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban 163d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban CommandPacket modifiersCommand = new CommandPacket( 164d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban JDWPCommands.ReferenceTypeCommandSet.CommandSetID, 165d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban JDWPCommands.ReferenceTypeCommandSet.ModifiersCommand); 166d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban modifiersCommand.setNextValueAsReferenceTypeID(refTypeID); 167d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban 168d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban ReplyPacket modifiersReply = debuggeeWrapper.vmMirror.performCommand(modifiersCommand); 169d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban modifiersCommand = null; 170d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban checkReplyPacket(modifiersReply, thisCommandName); 171d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban 172d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban int returnedModifiers = modifiersReply.getNextValueAsInt(); 173d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban/* 174d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban * The value of the access_flags item is a mask of modifiers used with class and 175d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban * interface declarations. The access_flags modifiers are: 176d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban * Flag Name Value Meaning Used By 177d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban * ACC_PUBLIC 0x0001 Is public; may be accessed from outside its package. Class, interface 178d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban * ACC_FINAL 0x0010 Is final; no subclasses allowed. Class 179d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban * ACC_SUPER 0x0020 Treat superclass methods specially in invokespecial. Class, interface 180d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban * ACC_INTERFACE 0x0200 Is an interface. Interface 181d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban * ACC_ABSTRACT 0x0400 Is abstract; may not be instantiated. Class, interface 182d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban */ 183d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban logWriter.println("=> Returned modifiers = 0x" + Integer.toHexString(returnedModifiers)); 184d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban 185d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban int publicFlag = 0x0001; // expected 186d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban int finalFlag = 0x0010; // unexpected 187d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban int superFlag = 0x0020; // unexpected 188d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban int interfaceFlag = 0x0200; // expected 189d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban int abstractFlag = 0x0400; // unexpected 190d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban 191d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban if ( (returnedModifiers & publicFlag) != 0 ) { 192d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban logWriter.println 193d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban ("## CHECK1: FAILURE: Returned modifiers contain unexpected ACC_PUBLIC flag(0x0001)"); 194d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban failMessage = failMessage + 195d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban "Returned modifiers contain unexpected ACC_PUBLIC flag(0x0001);\n"; 196d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban } 197d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban if ( (returnedModifiers & superFlag) != 0 ) { 198d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban logWriter.println 199d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban ("## CHECK1: FAILURE: Returned modifiers contain unexpected ACC_SUPER flag(0x0020)"); 200d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban failMessage = failMessage + 201d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban "Returned modifiers contain unexpected ACC_SUPER flag(0x0020);\n"; 202d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban } 203d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban if ( (returnedModifiers & finalFlag) != 0 ) { 204d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban logWriter.println 205d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban ("## CHECK1: FAILURE: Returned modifiers contain unexpected ACC_FINAL flag(0x0010)"); 206d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban failMessage = failMessage + 207d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban "Returned modifiers contain unexpected ACC_FINAL flag(0x0010);\n"; 208d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban } 209d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban if ( (returnedModifiers & interfaceFlag) == 0 ) { 210d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban logWriter.println 211d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban ("## CHECK1: FAILURE: Returned modifiers do not contain expected ACC_INTERFACE flag(0x0200)"); 212d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban failMessage = failMessage + 213d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban "Returned modifiers do not contain expected ACC_INTERFACE flag(0x0200);\n"; 214d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban } 215d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban if ( (returnedModifiers & abstractFlag) == 0 ) { 216d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban logWriter.println 217d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban ("## CHECK1: FAILURE: Returned modifiers do not contain expected ACC_ABSTRACT flag(0x0400)"); 218d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban failMessage = failMessage + 219d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban "Returned modifiers do not contain expected ACC_ABSTRACT flag(0x0400);\n"; 220d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban } 221d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban 222d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban synchronizer.sendMessage(JPDADebuggeeSynchronizer.SGNL_CONTINUE); 223d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban logWriter.println("==> " + thisTestName + " for " + thisCommandName + ": FINISH"); 224d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban 225d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban if (failMessage.length() > 0) { 226d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban fail(failMessage); 227d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban } else { 228d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban logWriter.println 229d38d553d7def2dfc28847a1068509dfa526f6a9dYevgeny Rouban ("=> CHECK1: PASSED: expected modifiers are returned: ACC_INTERFACE flag(0x0200), ACC_ABSTRACT flag(0x0400)"); 2305f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 2315f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 2325f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes assertAllDataRead(modifiersReply); 2335f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 2345f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes} 235