1/* 2 * Licensed to the Apache Software Foundation (ASF) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * The ASF licenses this file to You under the Apache License, Version 2.0 6 * (the "License"); you may not use this file except in compliance with 7 * the License. You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * 15 * See the License for the specific language governing permissions and 16 * limitations under the License. 17 */ 18 19/** 20 * @author Anatoly F. Bondarenko 21 */ 22 23/** 24 * Created on 13.07.2005 25 */ 26package org.apache.harmony.jpda.tests.jdwp.ObjectReference; 27 28import org.apache.harmony.jpda.tests.share.JPDADebuggeeSynchronizer; 29import org.apache.harmony.jpda.tests.share.SyncDebuggee; 30 31import java.util.Arrays; 32 33public class SetValues004Debuggee extends SyncDebuggee { 34 35 static String passedStatus = "PASSED"; 36 static String failedStatus = "FAILED"; 37 static String status = passedStatus; 38 39 static SetValues004Debuggee testedObject; 40 41 int intArrayField[]; // JDWP_TAG_ARRAY = 91 42 SetValues004Debuggee objectArrayField[]; // JDWP_TAG_ARRAY = 91 43 SetValues004Debuggee objectField; // JDWP_TAG_OBJECT = 76 44 String stringField; // JDWP_TAG_STRING = 115 45 Thread threadField; // JDWP_TAG_THREAD = 116 46 ThreadGroup threadGroupField; // JDWP_TAG_THREAD_GROUP = 103 47 Class<?> classField; // JDWP_TAG_CLASS_OBJECT = 99 48 ClassLoader classLoaderField; // DWP_TAG_CLASS_LOADER = 108 49 50 @Override 51 public void run() { 52 53 logWriter.println("--> Debuggee: SetValues004Debuggee: START"); 54 testedObject = new SetValues004Debuggee(); 55 56 testedObject.intArrayField = new int[1]; 57 testedObject.intArrayField[0]= 999; 58 testedObject.objectArrayField = new SetValues004Debuggee[1]; 59 testedObject.objectArrayField[0] = new SetValues004Debuggee(); 60 testedObject.objectField = new SetValues004Debuggee(); 61 testedObject.stringField = "stringField"; 62 testedObject.threadField = new SetValues004DebuggeeThread(); 63 testedObject.threadGroupField = new ThreadGroup("ThreadGroupName"); 64 testedObject.classField = SetValues004Debuggee.class; 65 testedObject.classLoaderField = testedObject.classField.getClassLoader(); 66 67 logWriter.println("\n--> Debuggee: SetValues004Debuggee: Before ObjectReference::SetValues command:"); 68 logWriter.println("--> intArrayField value = " + Arrays.toString(testedObject.intArrayField)); 69 logWriter.println("--> objectArrayField value = " + Arrays.toString(testedObject.objectArrayField)); 70 logWriter.println("--> objectField value = " + testedObject.objectField); 71 logWriter.println("--> stringField value = " + testedObject.stringField); 72 logWriter.println("--> threadField value = " + testedObject.threadField); 73 logWriter.println("--> threadGroupField value = " + testedObject.threadGroupField); 74 logWriter.println("--> classField value = " + testedObject.classField); 75 logWriter.println("--> classLoaderField value = " + testedObject.classLoaderField); 76 77 synchronizer.sendMessage(JPDADebuggeeSynchronizer.SGNL_READY); 78 synchronizer.receiveMessage(JPDADebuggeeSynchronizer.SGNL_CONTINUE); 79 80 logWriter.println("\n--> Debuggee: SetValues004Debuggee: After ObjectReference::SetValues command:"); 81 logWriter.println("--> intArrayField value = " + Arrays.toString(testedObject.intArrayField)); 82 if ( testedObject.intArrayField != null ) { 83 logWriter.println("##> Debuggee: FAILURE: Unexpected value"); 84 logWriter.println("##> Expected value = " + null); 85 status = failedStatus; 86 } else { 87 logWriter.println("--> Debuggee: OK. Expected value"); 88 } 89 90 logWriter.println("--> objectArrayField value = " + Arrays.toString(testedObject.objectArrayField)); 91 if ( testedObject.objectArrayField != null ) { 92 logWriter.println("##> Debuggee: FAILURE: Unexpected value"); 93 logWriter.println("##> Expected value = " + null); 94 status = failedStatus; 95 } else { 96 logWriter.println("--> Debuggee: OK. Expected value"); 97 } 98 99 logWriter.println("--> objectField value = " + testedObject.objectField); 100 if ( testedObject.objectField != null ) { 101 logWriter.println("##> Debuggee: FAILURE: Unexpected value"); 102 logWriter.println("##> Expected value = " + null); 103 status = failedStatus; 104 } else { 105 logWriter.println("--> Debuggee: OK. Expected value"); 106 } 107 108 logWriter.println("--> stringField value = " + testedObject.stringField); 109 if ( testedObject.stringField != null ) { 110 logWriter.println("##> Debuggee: FAILURE: Unexpected value"); 111 logWriter.println("##> Expected value = " + null); 112 status = failedStatus; 113 } else { 114 logWriter.println("--> Debuggee: OK. Expected value"); 115 } 116 117 logWriter.println("--> threadField value = " + testedObject.threadField); 118 if ( testedObject.threadField != null ) { 119 logWriter.println("##> Debuggee: FAILURE: Unexpected value"); 120 logWriter.println("##> Expected value = " + null); 121 status = failedStatus; 122 } else { 123 logWriter.println("--> Debuggee: OK. Expected value"); 124 } 125 126 logWriter.println("--> threadGroupField value = " + testedObject.threadGroupField); 127 if ( testedObject.threadGroupField != null ) { 128 logWriter.println("##> Debuggee: FAILURE: Unexpected value"); 129 logWriter.println("##> Expected value = " + null); 130 status = failedStatus; 131 } else { 132 logWriter.println("--> Debuggee: OK. Expected value"); 133 } 134 135 logWriter.println("--> classField value = " + testedObject.classField); 136 if ( testedObject.classField != null ) { 137 logWriter.println("##> Debuggee: FAILURE: Unexpected value"); 138 logWriter.println("##> Expected value = " + null); 139 status = failedStatus; 140 } else { 141 logWriter.println("--> Debuggee: OK. Expected value"); 142 } 143 144 logWriter.println("--> classLoaderField value = " + testedObject.classLoaderField); 145 if ( testedObject.classLoaderField != null ) { 146 logWriter.println("##> Debuggee: FAILURE: Unexpected value"); 147 logWriter.println("##> Expected value = " + null); 148 status = failedStatus; 149 } else { 150 logWriter.println("--> Debuggee: OK. Expected value"); 151 } 152 153 if ( status.equals(failedStatus) ) { 154 logWriter.println("\n##> Debuggee: Check status = FAILED"); 155 } else { 156 logWriter.println("\n--> Debuggee: Check status = PASSED"); 157 } 158 159 logWriter.println("--> Debuggee: Send check status for SetValues004Test...\n"); 160 synchronizer.sendMessage(status); 161 162 logWriter.println("--> Debuggee: SetValues004Debuggee: FINISH"); 163 } 164 165 public static void main(String [] args) { 166 runDebuggee(SetValues004Debuggee.class); 167 } 168} 169 170class SetValues004DebuggeeThread extends Thread { 171 public void myMethod() { 172 } 173} 174