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