Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/test/hotspot/jtreg/compiler/inlining/InlineAccessors.java
41149 views
1
/*
2
* Copyright (c) 2015, 2021, 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
* @test
26
* @bug 8140650
27
* @summary Method::is_accessor should cover getters and setters for all types
28
* @library /test/lib
29
* @requires vm.flagless
30
*
31
* @run driver compiler.inlining.InlineAccessors
32
*/
33
34
package compiler.inlining;
35
36
import jdk.test.lib.process.OutputAnalyzer;
37
import jdk.test.lib.process.ProcessTools;
38
39
public class InlineAccessors {
40
public static void main(String[] args) throws Exception {
41
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
42
"-XX:+IgnoreUnrecognizedVMOptions", "-showversion",
43
"-server", "-XX:-TieredCompilation", "-Xbatch",
44
"-XX:+PrintCompilation", "-XX:+UnlockDiagnosticVMOptions", "-XX:+PrintInlining",
45
Launcher.class.getName());
46
47
OutputAnalyzer analyzer = new OutputAnalyzer(pb.start());
48
49
analyzer.shouldHaveExitValue(0);
50
51
// The test is applicable only to C2 (present in Server VM).
52
if (analyzer.getStderr().contains("Server VM")) {
53
analyzer.shouldContain("InlineAccessors::setBool (6 bytes) accessor");
54
analyzer.shouldContain("InlineAccessors::setByte (6 bytes) accessor");
55
analyzer.shouldContain("InlineAccessors::setChar (6 bytes) accessor");
56
analyzer.shouldContain("InlineAccessors::setShort (6 bytes) accessor");
57
analyzer.shouldContain("InlineAccessors::setInt (6 bytes) accessor");
58
analyzer.shouldContain("InlineAccessors::setFloat (6 bytes) accessor");
59
analyzer.shouldContain("InlineAccessors::setLong (6 bytes) accessor");
60
analyzer.shouldContain("InlineAccessors::setDouble (6 bytes) accessor");
61
analyzer.shouldContain("InlineAccessors::setObject (6 bytes) accessor");
62
analyzer.shouldContain("InlineAccessors::setArray (6 bytes) accessor");
63
64
analyzer.shouldContain("InlineAccessors::getBool (5 bytes) accessor");
65
analyzer.shouldContain("InlineAccessors::getByte (5 bytes) accessor");
66
analyzer.shouldContain("InlineAccessors::getChar (5 bytes) accessor");
67
analyzer.shouldContain("InlineAccessors::getShort (5 bytes) accessor");
68
analyzer.shouldContain("InlineAccessors::getInt (5 bytes) accessor");
69
analyzer.shouldContain("InlineAccessors::getFloat (5 bytes) accessor");
70
analyzer.shouldContain("InlineAccessors::getLong (5 bytes) accessor");
71
analyzer.shouldContain("InlineAccessors::getDouble (5 bytes) accessor");
72
analyzer.shouldContain("InlineAccessors::getObject (5 bytes) accessor");
73
analyzer.shouldContain("InlineAccessors::getArray (5 bytes) accessor");
74
}
75
}
76
77
boolean bool;
78
byte b;
79
char c;
80
short s;
81
int i;
82
float f;
83
long l;
84
double d;
85
Object o;
86
Object[] a;
87
88
public void setBool(boolean v) { bool = v; }
89
public void setByte(byte v) { b = v; }
90
public void setChar(char v) { c = v; }
91
public void setShort(short v) { s = v; }
92
public void setInt(int v) { i = v; }
93
public void setFloat(float v) { f = v; }
94
public void setLong(long v) { l = v; }
95
public void setDouble(double v) { d = v; }
96
public void setObject(Object v) { o = v; }
97
public void setArray(Object[] v) { a = v; }
98
99
public boolean getBool() { return bool; }
100
public byte getByte() { return b; }
101
public char getChar() { return c; }
102
public short getShort() { return s; }
103
public int getInt() { return i; }
104
public float getFloat() { return f; }
105
public long getLong() { return l; }
106
public double getDouble() { return d; }
107
public Object getObject() { return o; }
108
public Object[] getArray() { return a; }
109
110
static void doTest() {
111
InlineAccessors o = new InlineAccessors();
112
o.setBool(false);
113
o.setByte((byte)0);
114
o.setChar('a');
115
o.setShort((short)0);
116
o.setInt(0);
117
o.setFloat(0F);
118
o.setLong(0L);
119
o.setDouble(0D);
120
o.setObject(new Object());
121
o.setArray(new Object[1]);
122
123
o.getBool();
124
o.getByte();
125
o.getChar();
126
o.getShort();
127
o.getInt();
128
o.getFloat();
129
o.getLong();
130
o.getDouble();
131
o.getObject();
132
o.getArray();
133
}
134
135
static class Launcher {
136
public static void main(String[] args) throws Exception {
137
for (int c = 0; c < 20_000; c++) {
138
doTest();
139
}
140
}
141
}
142
}
143
144