01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * 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 Anton V. Karnachuk
21: * @version $Revision: 1.2 $
22: */
23:
24: /**
25: * Created on 11.03.2005
26: */package org.apache.harmony.jpda.tests.jdwp.Events;
27:
28: import org.apache.harmony.jpda.tests.share.JPDADebuggeeSynchronizer;
29: import org.apache.harmony.jpda.tests.share.SyncDebuggee;
30:
31: /**
32: * Basic debuggee for events unit tests.
33: * Runs new thread
34: */
35: public class EventDebuggee extends SyncDebuggee {
36:
37: public static final String testedThreadName = "SimpleThread";
38:
39: private class SimpleThread extends Thread {
40:
41: public SimpleThread() {
42: super (testedThreadName);
43: }
44:
45: public void run() {
46: logWriter.println("-> SimpleThread: Running...");
47: }
48: }
49:
50: public static void main(String[] args) {
51: runDebuggee(EventDebuggee.class);
52: }
53:
54: public void run() {
55: logWriter.println("-> EventDebuggee: STARTED");
56:
57: synchronizer.sendMessage(JPDADebuggeeSynchronizer.SGNL_READY);
58: synchronizer
59: .receiveMessage(JPDADebuggeeSynchronizer.SGNL_CONTINUE);
60:
61: SimpleThread testThread = new SimpleThread();
62: testThread.start();
63: logWriter.println("-> EventDebuggee: SimpleThread started");
64: try {
65: testThread.join();
66: } catch (InterruptedException e) {
67: e.printStackTrace();
68: }
69: logWriter.println("-> EventDebuggee: SimpleThread finished");
70: synchronizer.sendMessage(JPDADebuggeeSynchronizer.SGNL_READY);
71:
72: logWriter
73: .println("-> EventDebuggee: wait for signal to continue...");
74: // do NOT finish without signal (in acceptable time) in order
75: // to do NOT generate unexpected events
76: String infoMessage = "-> EventDebuggee: TIMED OUT in waiting for signal!";
77: for (int i = 0; i < 10; i++) {
78: if (synchronizer
79: .receiveMessage(JPDADebuggeeSynchronizer.SGNL_CONTINUE)) {
80: infoMessage = "-> EventDebuggee: signal received!";
81: break;
82: }
83: }
84: logWriter.println(infoMessage);
85:
86: logWriter.println("-> EventDebuggee: FINISH...");
87: }
88:
89: }
|