Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/test/jdk/sun/jvmstat/monitor/VmIdentifier/VmIdentifierCreateResolve.java
41152 views
1
/*
2
* Copyright (c) 2004, 2017, 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 4990825
27
* @summary test that VmIdentifier objects get created as expected
28
*
29
* @modules java.xml
30
* jdk.internal.jvmstat/sun.jvmstat.monitor
31
*/
32
33
import java.io.*;
34
import java.net.*;
35
import javax.xml.parsers.*;
36
import org.xml.sax.*;
37
import org.xml.sax.helpers.DefaultHandler;
38
import sun.jvmstat.monitor.*;
39
40
public class VmIdentifierCreateResolve {
41
42
public static void main(String args[]) throws Exception {
43
File testcases =
44
new File(System.getProperty("test.src", "."), "testcases");
45
46
SAXParserFactory spf = SAXParserFactory.newInstance();
47
SAXParser sp = spf.newSAXParser();
48
DefaultHandler dh = new VmIdentifierTestHandler();
49
sp.parse(testcases, dh);
50
}
51
}
52
53
class VmIdentifierTestHandler extends DefaultHandler {
54
private static final boolean debug = false;
55
private static final int START = 0;
56
private static final int VMIDENTIFIER_TESTS = 1;
57
private static final int TESTCASE = 2;
58
private static final int DESCRIPTION = 3;
59
private static final int VMIDENTIFIER = 4;
60
private static final int HOSTIDENTIFIER = 5;
61
private static final int RESOLVED = 6;
62
63
private TestCase test;
64
private String value = null;
65
private int state;
66
private Attributes attributes;
67
68
public VmIdentifierTestHandler() {
69
super();
70
}
71
72
public void characters(char[] ch, int start, int length) {
73
String s = new String(ch, start, length);
74
if (debug) {
75
System.out.println("characters: start = " + start +
76
" length = " + length +
77
" chars = " + s);
78
}
79
80
if (value == null) {
81
value = s.trim();
82
} else {
83
value = value + s.trim();
84
if (debug) {
85
System.out.println("characters: appended characters to "
86
+ "previous value: new value = " + value);
87
}
88
}
89
}
90
91
public void endDocument() {
92
if (debug) {
93
System.out.println("endDocument()");
94
}
95
}
96
97
public void endElement(String namespaceURI, String localName,
98
String qName)
99
throws SAXException {
100
if (debug) {
101
System.out.println("endElement(): namespaceURI = " + namespaceURI
102
+ " localName = " + localName
103
+ " qName = " + qName
104
+ " state = " + state);
105
}
106
107
switch (state) {
108
case START:
109
throw new RuntimeException("Unexpected state: " + state);
110
111
case VMIDENTIFIER_TESTS:
112
state = START;
113
break;
114
115
case TESTCASE:
116
if (test == null) {
117
throw new RuntimeException("Unexpected thread state");
118
}
119
try {
120
System.out.println("running test case " + test.id);
121
test.run(); // run the test
122
}
123
catch (Exception e) {
124
throw new SAXException(e);
125
}
126
state = VMIDENTIFIER_TESTS;
127
test = null;
128
value = null;
129
break;
130
131
case DESCRIPTION:
132
test.setDescription(value);
133
state = TESTCASE;
134
value = null;
135
break;
136
137
case VMIDENTIFIER:
138
test.setExpectedVmIdentifier(value);
139
state = TESTCASE;
140
value = null;
141
break;
142
143
case HOSTIDENTIFIER:
144
test.setExpectedHostIdentifier(value);
145
state = TESTCASE;
146
value = null;
147
break;
148
149
case RESOLVED:
150
test.setResolvedVmIdentifier(value);
151
state = TESTCASE;
152
value = null;
153
break;
154
155
default:
156
throw new RuntimeException("Unexpected state: " + state);
157
}
158
}
159
160
public void endPrefixMapping(String prefix) {
161
if (debug) {
162
System.out.println("endPrefixMapping(): prefix = " + prefix);
163
}
164
}
165
166
public void ignorableWhitespace(char[] ch, int start, int length) {
167
if (debug) {
168
System.out.println("ignoreableWhitespace():"
169
+ " ch = " + new String(ch, start, length)
170
+ " start = " + start
171
+ " length = " + length);
172
}
173
}
174
175
public void processingInstruction(String target, String data) {
176
if (debug) {
177
System.out.println("processingInstruction():"
178
+ " target = " + target
179
+ " data = " + data);
180
}
181
}
182
183
public void setDocumentLocator(Locator locator) {
184
if (debug) {
185
System.out.println("setDocumentLocator(): locator = " + locator);
186
}
187
}
188
189
public void skippedEntity(String name) {
190
if (debug) {
191
System.out.println("skippedEntity(): name = " + name);
192
}
193
}
194
195
public void startDocument() {
196
if (debug) {
197
System.out.println("startDocument():");
198
}
199
}
200
201
public void startElement(String namespaceURI, String localName,
202
String qName, Attributes attributes) {
203
if (debug) {
204
System.out.println("startElement():"
205
+ " namespaceURI = " + namespaceURI
206
+ " localName = " + localName
207
+ " qName = " + qName
208
+ " state = " + state);
209
210
System.out.println(" Attributes(" + attributes.getLength() + ")");
211
for (int i = 0; i < attributes.getLength(); i++) {
212
System.out.println(" name = " + attributes.getQName(i)
213
+ " value = " + attributes.getValue(i));
214
}
215
}
216
217
this.attributes = attributes;
218
219
switch (state) {
220
case START:
221
if (qName.compareTo("VmIdentifierTests") == 0) {
222
state = VMIDENTIFIER_TESTS;
223
} else {
224
System.err.println("unexpected input: state = " + state
225
+ " input = " + qName);
226
}
227
break;
228
229
case VMIDENTIFIER_TESTS:
230
if (qName.compareTo("testcase") == 0) {
231
state = TESTCASE;
232
int id_n = attributes.getIndex("id");
233
234
if (id_n == -1) {
235
throw new RuntimeException("id attribute expected");
236
}
237
238
int vmid_n = attributes.getIndex("VmIdentifierInput");
239
if (vmid_n == -1) {
240
throw new RuntimeException(
241
"VmIdentifier attribute expected");
242
}
243
244
String hostid_input = null;
245
int hostid_n = attributes.getIndex("HostIdentifierInput");
246
if (hostid_n != -1) {
247
hostid_input = attributes.getValue(hostid_n);
248
}
249
250
String vmid_input = attributes.getValue(vmid_n);
251
String id = attributes.getValue(id_n);
252
253
test = new TestCase(id, vmid_input, hostid_input);
254
} else {
255
System.err.println("unexpected input: state = " + state
256
+ " input = " + qName);
257
}
258
break;
259
260
case TESTCASE:
261
if (test == null) {
262
throw new RuntimeException("TestCase null");
263
}
264
value = null;
265
if (qName.compareTo("description") == 0) {
266
state = DESCRIPTION;
267
268
} else if (qName.compareTo("VmIdentifier") == 0) {
269
state = VMIDENTIFIER;
270
271
} else if (qName.compareTo("HostIdentifier") == 0) {
272
state = HOSTIDENTIFIER;
273
274
} else if (qName.compareTo("Resolved") == 0) {
275
state = RESOLVED;
276
277
} else {
278
System.err.println("unexpected input: state = " + state
279
+ " input = " + qName);
280
}
281
break;
282
283
case DESCRIPTION:
284
case VMIDENTIFIER:
285
case HOSTIDENTIFIER:
286
case RESOLVED:
287
if (test == null) {
288
throw new RuntimeException("TestCase null");
289
}
290
break;
291
292
default:
293
System.err.println("Unexpected state: " + state);
294
break;
295
}
296
}
297
298
public void startPrefixMapping(String prefix, String uri) {
299
if (debug) {
300
System.out.println("startPrefixMapping():"
301
+ " prefix = " + prefix
302
+ " uri = " + uri);
303
}
304
}
305
}
306
307
class VmIdentifierException extends Exception {
308
String result;
309
TestCase test;
310
311
VmIdentifierException(TestCase test, String result) {
312
this.test = test;
313
this.result = result;
314
}
315
316
public String getMessage() {
317
return "Test " + test.id + " " + "Failed: "
318
+ "Expected = " + test.expectedVmIdentifier + " "
319
+ "Actual = " + result;
320
}
321
}
322
323
class HostIdentifierException extends Exception {
324
String result;
325
TestCase test;
326
327
HostIdentifierException(TestCase test, String result) {
328
this.test = test;
329
this.result = result;
330
}
331
332
public String getMessage() {
333
return "Test " + test.id + " " + "Failed: "
334
+ "Expected = " + test.expectedHostIdentifier + " "
335
+ "Actual = " + result;
336
}
337
}
338
339
class ResolvedVmIdentifierException extends Exception {
340
String result;
341
TestCase test;
342
343
ResolvedVmIdentifierException(TestCase test, String result) {
344
this.test = test;
345
this.result = result;
346
}
347
public String getMessage() {
348
return "Test " + test.id + " " + "Failed: "
349
+ "Expected = " + test.resolvedVmIdentifier + " "
350
+ "Actual = " + result;
351
}
352
}
353
354
class TestCase {
355
private static final boolean debug = false;
356
357
String id;
358
String vmid;
359
String hostid;
360
String expectedVmIdentifier;
361
String expectedHostIdentifier;
362
String resolvedVmIdentifier;
363
String description;
364
365
public TestCase(String id, String vmid, String hostid) {
366
this.id = id;
367
this.vmid = vmid;
368
this.hostid = hostid;
369
}
370
371
public void run() throws Exception {
372
if (expectedVmIdentifier == null || expectedHostIdentifier == null
373
|| resolvedVmIdentifier == null) {
374
throw new IllegalArgumentException(
375
"expected values not initialized");
376
}
377
378
VmIdentifier test_vmid = null;
379
HostIdentifier test_hostid = null;
380
VmIdentifier resolved_vmid = null;
381
382
if (debug) {
383
System.out.println("creating VmIdentifier");
384
}
385
386
test_vmid = new VmIdentifier(vmid);
387
388
if (debug) {
389
System.out.println("creating HostIdentifier");
390
}
391
392
if (hostid != null) {
393
test_hostid = new HostIdentifier(hostid);
394
} else {
395
test_hostid = new HostIdentifier(test_vmid);
396
}
397
398
if (debug) {
399
System.out.println("resolving VmIdentifier");
400
}
401
402
resolved_vmid = test_hostid.resolve(test_vmid);
403
404
String test_vmid_str = test_vmid.toString();
405
String test_hostid_str = test_hostid.toString();
406
String resolved_vmid_str = resolved_vmid.toString();
407
408
if (debug) {
409
System.out.println("comparing VmIdentifier result");
410
}
411
412
if (test_vmid_str.compareTo(expectedVmIdentifier) != 0) {
413
throw new VmIdentifierException(this, test_vmid_str);
414
}
415
416
if (debug) {
417
System.out.println("comparing HostIdentifier result");
418
}
419
420
if (test_hostid_str.compareTo(expectedHostIdentifier) != 0) {
421
throw new HostIdentifierException(this, test_hostid_str);
422
}
423
424
if (debug) {
425
System.out.println("comparing VmIdentifier result");
426
}
427
428
if (resolved_vmid_str.compareTo(resolvedVmIdentifier) != 0) {
429
throw new ResolvedVmIdentifierException(this, resolved_vmid_str);
430
}
431
}
432
433
public void setDescription(String description) {
434
this.description = description;
435
}
436
437
public void setExpectedVmIdentifier(String expectedVmIdentifier) {
438
if (debug) {
439
System.out.println("setting vmidentifier string to " + vmid);
440
}
441
this.expectedVmIdentifier = expectedVmIdentifier;
442
}
443
444
public void setExpectedHostIdentifier(String expectedHostIdentifier) {
445
this.expectedHostIdentifier = expectedHostIdentifier;
446
}
447
448
public void setResolvedVmIdentifier(String resolvedVmIdentifier) {
449
this.resolvedVmIdentifier = resolvedVmIdentifier;
450
}
451
}
452
453