Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/test/hotspot/jtreg/vmTestbase/nsk/jdb/thread/thread002/thread002.java
40955 views
1
/*
2
* Copyright (c) 2002, 2020, Oracle and/or its affiliates. All rights reserved.
3
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
*
5
* This code is free software; you can redistribute it and/or modify it
6
* under the terms of the GNU General Public License version 2 only, as
7
* published by the Free Software Foundation.
8
*
9
* This code is distributed in the hope that it will be useful, but WITHOUT
10
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12
* version 2 for more details (a copy is included in the LICENSE file that
13
* accompanied this code).
14
*
15
* You should have received a copy of the GNU General Public License version
16
* 2 along with this work; if not, write to the Free Software Foundation,
17
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18
*
19
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20
* or visit www.oracle.com if you need additional information or have any
21
* questions.
22
*/
23
24
25
/*
26
* @test
27
*
28
* @summary converted from VM Testbase nsk/jdb/thread/thread002.
29
* VM Testbase keywords: [jpda, jdb]
30
* VM Testbase readme:
31
* DECSRIPTION
32
* This is a test for jdb 'thread <thread id>' command.
33
* The debugee starts 5 'MyThreads' that are all suspended on the lock
34
* that the main thread posseses. The 'threads' command is issued
35
* at this point to obtain ids' od auxiliary threads. Then for each id
36
* the 'thread' command is issued. The test checks that jdb correctly
37
* switches between threads using 'eval <expr>' command. The expression
38
* must return a string containing the name of current thread.
39
* COMMENTS
40
* This test functionally equals to nsk/jdb/threads/threads001 test
41
* and replaces it.
42
*
43
* @library /vmTestbase
44
* /test/lib
45
* @build nsk.jdb.thread.thread002.thread002a
46
* @run main/othervm
47
* nsk.jdb.thread.thread002.thread002
48
* -arch=${os.family}-${os.simpleArch}
49
* -waittime=5
50
* -debugee.vmkind=java
51
* -transport.address=dynamic
52
* -jdb=${test.jdk}/bin/jdb
53
* -java.options="${test.vm.opts} ${test.java.opts}"
54
* -workdir=.
55
* -debugee.vmkeys="${test.vm.opts} ${test.java.opts}"
56
*/
57
58
package nsk.jdb.thread.thread002;
59
60
import nsk.share.*;
61
import nsk.share.jdb.*;
62
63
import java.io.*;
64
import java.util.*;
65
66
public class thread002 extends JdbTest {
67
68
public static void main (String argv[]) {
69
System.exit(run(argv, System.out) + JCK_STATUS_BASE);
70
}
71
72
public static int run(String argv[], PrintStream out) {
73
debuggeeClass = DEBUGGEE_CLASS;
74
firstBreak = FIRST_BREAK;
75
lastBreak = LAST_BREAK;
76
return new thread002().runTest(argv, out);
77
}
78
79
static final String PACKAGE_NAME = "nsk.jdb.thread.thread002";
80
static final String TEST_CLASS = PACKAGE_NAME + ".thread002";
81
static final String DEBUGGEE_CLASS = TEST_CLASS + "a";
82
static final String FIRST_BREAK = DEBUGGEE_CLASS + ".main";
83
static final String LAST_BREAK = DEBUGGEE_CLASS + ".lastBreak";
84
85
static final String THREAD_NAME = "MyThread";
86
87
protected void runCases() {
88
String[] reply;
89
Paragrep grep;
90
int count;
91
Vector v;
92
String found;
93
94
jdb.setBreakpointInMethod(LAST_BREAK);
95
jdb.receiveReplyFor(JdbCommand.cont);
96
97
String[] threadIds = jdb.getThreadIds(PACKAGE_NAME + "." + THREAD_NAME);
98
99
for (int i = 0; i < thread002a.numThreads; i++) {
100
jdb.receiveReplyFor(JdbCommand.thread + threadIds[i]);
101
jdb.receiveReplyFor(JdbCommand.print + DEBUGGEE_CLASS + ".holder[" + i + "].name");
102
}
103
104
jdb.contToExit(1);
105
106
reply = jdb.getTotalReply();
107
grep = new Paragrep(reply);
108
for (int i = 0; i < threadIds.length; i++) {
109
count = grep.find(THREAD_NAME + "#" + i);
110
if (count != 1) {
111
failure("jdb failed to switch to thread: " + threadIds[i]);
112
}
113
}
114
}
115
}
116
117