Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/openjdk-multiarch-jdk8u
Path: blob/aarch64-shenandoah-jdk8u272-b10/jdk/test/javax/management/ObjectName/ApplyWildcardTest.java
38838 views
1
/*
2
* Copyright (c) 2005, 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 4716807
27
* @summary Test the ObjectName.apply(ObjectName) method
28
* with wildcards in the key properties value part.
29
* @author Luis-Miguel Alventosa
30
* @run clean ApplyWildcardTest
31
* @run build ApplyWildcardTest
32
* @run main ApplyWildcardTest
33
*/
34
35
import javax.management.ObjectName;
36
37
public class ApplyWildcardTest {
38
39
private static final String positiveTests[][] = {
40
{ "d:k=*", "d:k=\"\"" },
41
42
{ "d:k=*", "d:k=" },
43
{ "d:k=*", "d:k=v" },
44
{ "d:k=a*b", "d:k=axyzb" },
45
{ "d:k=a*b,*", "d:k=axyzb,k2=v2" },
46
{ "d:*,k=a*b", "d:k=axyzb,k2=v2" },
47
{ "d:k=?", "d:k=v" },
48
{ "d:k=a?b", "d:k=axb" },
49
{ "d:k=a?b,*", "d:k=axb,k2=v2" },
50
{ "d:*,k=a?b", "d:k=axb,k2=v2" },
51
{ "d:k=?*", "d:k=axyzb" },
52
{ "d:k=a?bc*d", "d:k=axbcyzd" },
53
{ "d:k=a?bc*d,*", "d:k=axbcyzd,k2=v2" },
54
{ "d:*,k=a?bc*d", "d:k=axbcyzd,k2=v2" },
55
{ "d:k1=?,k2=*", "d:k1=a,k2=ab" },
56
{ "d:k1=a?b,k2=c*d", "d:k1=axb,k2=cyzd" },
57
{ "d:k1=a?b,k2=c*d,*", "d:k1=axb,k2=cyzd,k3=v3" },
58
{ "d:*,k1=a?b,k2=c*d", "d:k1=axb,k2=cyzd,k3=v3" },
59
60
{ "d:k=\"*\"", "d:k=\"\"" },
61
{ "d:k=\"*\"", "d:k=\"v\"" },
62
{ "d:k=\"a*b\"", "d:k=\"axyzb\"" },
63
{ "d:k=\"a*b\",*", "d:k=\"axyzb\",k2=\"v2\"" },
64
{ "d:*,k=\"a*b\"", "d:k=\"axyzb\",k2=\"v2\"" },
65
{ "d:k=\"?\"", "d:k=\"v\"" },
66
{ "d:k=\"a?b\"", "d:k=\"axb\"" },
67
{ "d:k=\"a?b\",*", "d:k=\"axb\",k2=\"v2\"" },
68
{ "d:*,k=\"a?b\"", "d:k=\"axb\",k2=\"v2\"" },
69
{ "d:k=\"?*\"", "d:k=\"axyzb\"" },
70
{ "d:k=\"a?bc*d\"", "d:k=\"axbcyzd\"" },
71
{ "d:k=\"a?bc*d\",*", "d:k=\"axbcyzd\",k2=\"v2\"" },
72
{ "d:*,k=\"a?bc*d\"", "d:k=\"axbcyzd\",k2=\"v2\"" },
73
{ "d:k1=\"?\",k2=\"*\"", "d:k1=\"a\",k2=\"ab\"" },
74
{ "d:k1=\"a?b\",k2=\"c*d\"", "d:k1=\"axb\",k2=\"cyzd\"" },
75
{ "d:k1=\"a?b\",k2=\"c*d\",*", "d:k1=\"axb\",k2=\"cyzd\",k3=\"v3\"" },
76
{ "d:*,k1=\"a?b\",k2=\"c*d\"", "d:k1=\"axb\",k2=\"cyzd\",k3=\"v3\"" },
77
};
78
79
private static final String negativeTests[][] = {
80
{ "d:k=\"*\"", "d:k=" },
81
82
{ "d:k=*", "d:k=,k2=" },
83
{ "d:k=*", "d:k=v,k2=v2" },
84
{ "d:k=a*b", "d:k=axyzbc" },
85
{ "d:k=a*b,*", "d:k=axyzbc,k2=v2" },
86
{ "d:*,k=a*b", "d:k=axyzbc,k2=v2" },
87
{ "d:k=?", "d:k=xyz" },
88
{ "d:k=a?b", "d:k=ab" },
89
{ "d:k=a?b,*", "d:k=ab,k2=v2" },
90
{ "d:*,k=a?b", "d:k=ab,k2=v2" },
91
{ "d:k=?*", "d:k=axyzb,k2=v2" },
92
{ "d:k=a?bc*d", "d:k=abcd" },
93
{ "d:k=a?bc*d,*", "d:k=abcd,k2=v2" },
94
{ "d:*,k=a?bc*d", "d:k=abcd,k2=v2" },
95
{ "d:k1=?,k2=*", "d:k1=ab,k2=ab" },
96
{ "d:k1=a?b,k2=c*d", "d:k1=ab,k2=cd" },
97
{ "d:k1=a?b,k2=c*d,*", "d:k1=ab,k2=cd,k3=v3" },
98
{ "d:*,k1=a?b,k2=c*d", "d:k1=ab,k2=cd,k3=v3" },
99
100
{ "d:k=\"*\"", "d:k=\"\",k2=\"\"" },
101
{ "d:k=\"*\"", "d:k=\"v\",k2=\"v2\"" },
102
{ "d:k=\"a*b\"", "d:k=\"axyzbc\"" },
103
{ "d:k=\"a*b\",*", "d:k=\"axyzbc\",k2=\"v2\"" },
104
{ "d:*,k=\"a*b\"", "d:k=\"axyzbc\",k2=\"v2\"" },
105
{ "d:k=\"?\"", "d:k=\"xyz\"" },
106
{ "d:k=\"a?b\"", "d:k=\"ab\"" },
107
{ "d:k=\"a?b\",*", "d:k=\"ab\",k2=\"v2\"" },
108
{ "d:*,k=\"a?b\"", "d:k=\"ab\",k2=\"v2\"" },
109
{ "d:k=\"?*\"", "d:k=\"axyzb\",k2=\"v2\"" },
110
{ "d:k=\"a?bc*d\"", "d:k=\"abcd\"" },
111
{ "d:k=\"a?bc*d\",*", "d:k=\"abcd\",k2=\"v2\"" },
112
{ "d:*,k=\"a?bc*d\"", "d:k=\"abcd\",k2=\"v2\"" },
113
{ "d:k1=\"?\",k2=\"*\"", "d:k1=\"ab\",k2=\"ab\"" },
114
{ "d:k1=\"a?b\",k2=\"c*d\"", "d:k1=\"ab\",k2=\"cd\"" },
115
{ "d:k1=\"a?b\",k2=\"c*d\",*", "d:k1=\"ab\",k2=\"cd\",k3=\"v3\"" },
116
{ "d:*,k1=\"a?b\",k2=\"c*d\"", "d:k1=\"ab\",k2=\"cd\",k3=\"v3\"" },
117
};
118
119
private static int runPositiveTests() {
120
int error = 0;
121
for (int i = 0; i < positiveTests.length; i++) {
122
System.out.println("----------------------------------------------");
123
try {
124
ObjectName on1 = ObjectName.getInstance(positiveTests[i][0]);
125
ObjectName on2 = ObjectName.getInstance(positiveTests[i][1]);
126
System.out.println("\"" + on1 + "\".apply(\"" + on2 + "\")");
127
boolean result = on1.apply(on2);
128
System.out.println("Result = " + result);
129
if (result == false) {
130
error++;
131
System.out.println("Test failed!");
132
} else {
133
System.out.println("Test passed!");
134
}
135
} catch (Exception e) {
136
error++;
137
System.out.println("Got Unexpected Exception = " + e.toString());
138
System.out.println("Test failed!");
139
}
140
System.out.println("----------------------------------------------");
141
}
142
return error;
143
}
144
145
private static int runNegativeTests() {
146
int error = 0;
147
for (int i = 0; i < negativeTests.length; i++) {
148
System.out.println("----------------------------------------------");
149
try {
150
ObjectName on1 = ObjectName.getInstance(negativeTests[i][0]);
151
ObjectName on2 = ObjectName.getInstance(negativeTests[i][1]);
152
System.out.println("\"" + on1 + "\".apply(\"" + on2 + "\")");
153
boolean result = on1.apply(on2);
154
System.out.println("Result = " + result);
155
if (result == true) {
156
error++;
157
System.out.println("Test failed!");
158
} else {
159
System.out.println("Test passed!");
160
}
161
} catch (Exception e) {
162
error++;
163
System.out.println("Got Unexpected Exception = " + e.toString());
164
System.out.println("Test failed!");
165
}
166
System.out.println("----------------------------------------------");
167
}
168
return error;
169
}
170
171
public static void main(String[] args) throws Exception {
172
173
int error = 0;
174
175
// Check null values
176
//
177
System.out.println("----------------------------------------------");
178
System.out.println("Test ObjectName.apply(null)");
179
try {
180
new ObjectName("d:k=v").apply(null);
181
error++;
182
System.out.println("Didn't get expected NullPointerException!");
183
System.out.println("Test failed!");
184
} catch (NullPointerException e) {
185
System.out.println("Got expected exception '" + e.toString() + "'");
186
System.out.println("Test passed!");
187
} catch (Exception e) {
188
error++;
189
System.out.println("Got unexpected exception '" + e.toString() + "'");
190
System.out.println("Test failed!");
191
}
192
System.out.println("----------------------------------------------");
193
194
// Check domain pattern values
195
//
196
System.out.println("----------------------------------------------");
197
System.out.println("Test ObjectName.apply(domain_pattern)");
198
try {
199
if (new ObjectName("d:k=v").apply(new ObjectName("*:k=v"))) {
200
error++;
201
System.out.println("Got 'true' expecting 'false'");
202
System.out.println("Test failed!");
203
} else {
204
System.out.println("Got expected return value 'false'");
205
System.out.println("Test passed!");
206
}
207
} catch (Exception e) {
208
error++;
209
System.out.println("Got unexpected exception = " + e.toString());
210
System.out.println("Test failed!");
211
}
212
System.out.println("----------------------------------------------");
213
214
// Check key property list pattern values
215
//
216
System.out.println("----------------------------------------------");
217
System.out.println("Test ObjectName.apply(key_property_list_pattern)");
218
try {
219
if (new ObjectName("d:k=v").apply(new ObjectName("d:k=v,*"))) {
220
error++;
221
System.out.println("Got 'true' expecting 'false'");
222
System.out.println("Test failed!");
223
} else {
224
System.out.println("Got expected return value 'false'");
225
System.out.println("Test passed!");
226
}
227
} catch (Exception e) {
228
error++;
229
System.out.println("Got unexpected exception = " + e.toString());
230
System.out.println("Test failed!");
231
}
232
System.out.println("----------------------------------------------");
233
234
// Check key property value pattern values
235
//
236
System.out.println("----------------------------------------------");
237
System.out.println("Test ObjectName.apply(key_property_value_pattern)");
238
try {
239
if (new ObjectName("d:k=v").apply(new ObjectName("d:k=*"))) {
240
error++;
241
System.out.println("Got 'true' expecting 'false'");
242
System.out.println("Test failed!");
243
} else {
244
System.out.println("Got expected return value 'false'");
245
System.out.println("Test passed!");
246
}
247
} catch (Exception e) {
248
error++;
249
System.out.println("Got unexpected exception = " + e.toString());
250
System.out.println("Test failed!");
251
}
252
System.out.println("----------------------------------------------");
253
254
error += runPositiveTests();
255
error += runNegativeTests();
256
257
if (error > 0) {
258
final String msg = "Test FAILED! Got " + error + " error(s)";
259
System.out.println(msg);
260
throw new IllegalArgumentException(msg);
261
} else {
262
System.out.println("Test PASSED!");
263
}
264
}
265
}
266
267