Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassSignature/getclsig006.java
40948 views
1
/*
2
* Copyright (c) 2003, 2018, 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
package nsk.jvmti.GetClassSignature;
25
26
import java.io.*;
27
import java.util.*;
28
29
import nsk.share.*;
30
31
/**
32
* This test checks that the JVMTI function <code>GetClassSignature()</code>
33
* returns generic signature information properly.<br>
34
* The test creates instances of tested classes. Some of them are generic.
35
* Then an agent part obtains the class signatures. Proper generic signature
36
* should be returned for the generic classes, or NULL otherwise.
37
*/
38
public class getclsig006 {
39
static {
40
try {
41
System.loadLibrary("getclsig006");
42
} catch (UnsatisfiedLinkError ule) {
43
System.err.println("Could not load \"getclsig006\" library");
44
System.err.println("java.library.path:"
45
+ System.getProperty("java.library.path"));
46
throw ule;
47
}
48
}
49
50
native int check();
51
52
public static void main(String[] argv) {
53
argv = nsk.share.jvmti.JVMTITest.commonInit(argv);
54
55
// produce JCK-like exit status
56
System.exit(run(argv, System.out) + Consts.JCK_STATUS_BASE);
57
}
58
59
public static int run(String argv[], PrintStream out) {
60
return new getclsig006().runThis(argv, out);
61
}
62
63
private int runThis(String argv[], PrintStream out) {
64
// create instances of tested classes
65
getclsig006b<String> _getclsig006b =
66
new getclsig006b<String>();
67
getclsig006c<Boolean, Integer> _getclsig006c =
68
new getclsig006c<Boolean, Integer>();
69
getclsig006if<Object> _getclsig006if =
70
new getclsig006d<Object>();
71
getclsig006g<getclsig006f> _getclsig006g =
72
new getclsig006g<getclsig006f>();
73
74
return check();
75
}
76
}
77
78
/*
79
* Dummy classes used only for verifying generic signature information
80
* in an agent.
81
*/
82
83
class getclsig006b<L extends String> {}
84
85
class getclsig006c<A, B extends Integer> {}
86
87
interface getclsig006if<I> {}
88
89
class getclsig006d<T> implements getclsig006if<T> {}
90
91
class getclsig006e {}
92
93
class getclsig006f extends getclsig006e implements getclsig006if {}
94
95
class getclsig006g<E extends getclsig006e & getclsig006if> {}
96
97