Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/test/jdk/sun/jvmstat/monitor/HostIdentifier/HostIdentifierCreate.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 HostIdentifier 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 HostIdentifierCreate {
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 HostIdentifierTestHandler();
49
sp.parse(testcases, dh);
50
}
51
}
52
53
class HostIdentifierTestHandler extends DefaultHandler {
54
private static final boolean debug = false;
55
private static final int START = 0;
56
private static final int HOSTIDENTIFIER_TESTS = 1;
57
private static final int TESTCASE = 2;
58
private static final int DESCRIPTION = 3;
59
private static final int HOSTIDENTIFIER = 4;
60
61
private TestCase test;
62
private String value = null;
63
private int state;
64
private Attributes attributes;
65
66
public HostIdentifierTestHandler() {
67
super();
68
}
69
70
public void characters(char[] ch, int start, int length) {
71
String s = new String(ch, start, length);
72
if (debug) {
73
System.out.println("characters: start = " + start +
74
" length = " + length +
75
" chars = " + s);
76
}
77
78
if (value == null) {
79
value = s.trim();
80
} else {
81
value = value + s.trim();
82
if (debug) {
83
System.out.println("characters: appended characters to "
84
+ "previous value: new value = " + value);
85
}
86
}
87
}
88
89
public void endDocument() {
90
if (debug) {
91
System.out.println("endDocument()");
92
}
93
}
94
95
public void endElement(String namespaceURI, String localName,
96
String qName)
97
throws SAXException {
98
if (debug) {
99
System.out.println("endElement(): namespaceURI = " + namespaceURI
100
+ " localName = " + localName
101
+ " qName = " + qName
102
+ " state = " + state);
103
}
104
105
switch (state) {
106
case START:
107
throw new RuntimeException("Unexpected state: " + state);
108
109
case HOSTIDENTIFIER_TESTS:
110
state = START;
111
break;
112
113
case TESTCASE:
114
if (test == null) {
115
throw new RuntimeException("Unexpected thread state");
116
}
117
try {
118
System.out.println("running test case " + test.id);
119
test.run(); // run the test
120
}
121
catch (Exception e) {
122
throw new SAXException("Testcase id = " + test.id, e);
123
}
124
state = HOSTIDENTIFIER_TESTS;
125
test = null;
126
value = null;
127
break;
128
129
case DESCRIPTION:
130
test.setDescription(value);
131
state = TESTCASE;
132
value = null;
133
break;
134
135
case HOSTIDENTIFIER:
136
test.setExpectedHostIdentifier(value);
137
state = TESTCASE;
138
value = null;
139
break;
140
141
default:
142
throw new RuntimeException("Unexpected state: " + state);
143
}
144
}
145
146
public void endPrefixMapping(String prefix) {
147
if (debug) {
148
System.out.println("endPrefixMapping(): prefix = " + prefix);
149
}
150
}
151
152
public void ignorableWhitespace(char[] ch, int start, int length) {
153
if (debug) {
154
System.out.println("ignoreableWhitespace():"
155
+ " ch = " + new String(ch, start, length)
156
+ " start = " + start
157
+ " length = " + length);
158
}
159
}
160
161
public void processingInstruction(String target, String data) {
162
if (debug) {
163
System.out.println("processingInstruction():"
164
+ " target = " + target
165
+ " data = " + data);
166
}
167
}
168
169
public void setDocumentLocator(Locator locator) {
170
if (debug) {
171
System.out.println("setDocumentLocator(): locator = " + locator);
172
}
173
}
174
175
public void skippedEntity(String name) {
176
if (debug) {
177
System.out.println("skippedEntity(): name = " + name);
178
}
179
}
180
181
public void startDocument() {
182
if (debug) {
183
System.out.println("startDocument():");
184
}
185
}
186
187
public void startElement(String namespaceURI, String localName,
188
String qName, Attributes attributes) {
189
if (debug) {
190
System.out.println("startElement():"
191
+ " namespaceURI = " + namespaceURI
192
+ " localName = " + localName
193
+ " qName = " + qName
194
+ " state = " + state);
195
196
System.out.println(" Attributes(" + attributes.getLength() + ")");
197
for (int i = 0; i < attributes.getLength(); i++) {
198
System.out.println(" name = " + attributes.getQName(i)
199
+ " value = " + attributes.getValue(i));
200
}
201
}
202
203
this.attributes = attributes;
204
205
switch (state) {
206
case START:
207
if (qName.compareTo("HostIdentifierTests") == 0) {
208
state = HOSTIDENTIFIER_TESTS;
209
} else {
210
System.err.println("unexpected input: state = " + state
211
+ " input = " + qName);
212
}
213
break;
214
215
case HOSTIDENTIFIER_TESTS:
216
if (qName.compareTo("testcase") == 0) {
217
state = TESTCASE;
218
int id_n = attributes.getIndex("id");
219
220
if (id_n == -1) {
221
throw new RuntimeException("id attribute expected");
222
}
223
224
String hostid_input = null;
225
int hostid_n = attributes.getIndex("HostIdentifierInput");
226
if (hostid_n != -1) {
227
hostid_input = attributes.getValue(hostid_n);
228
if (hostid_input.length() == 0) {
229
hostid_input = null;
230
}
231
}
232
233
String id = attributes.getValue(id_n);
234
235
test = new TestCase(id, hostid_input);
236
} else {
237
System.err.println("unexpected input: state = " + state
238
+ " input = " + qName);
239
}
240
break;
241
242
case TESTCASE:
243
if (test == null) {
244
throw new RuntimeException("TestCase null");
245
}
246
value = null;
247
if (qName.compareTo("description") == 0) {
248
state = DESCRIPTION;
249
250
} else if (qName.compareTo("HostIdentifier") == 0) {
251
state = HOSTIDENTIFIER;
252
253
} else {
254
System.err.println("unexpected input: state = " + state
255
+ " input = " + qName);
256
}
257
break;
258
259
case DESCRIPTION:
260
case HOSTIDENTIFIER:
261
if (test == null) {
262
throw new RuntimeException("TestCase null");
263
}
264
break;
265
266
default:
267
System.err.println("Unexpected state: " + state);
268
break;
269
}
270
}
271
272
public void startPrefixMapping(String prefix, String uri) {
273
if (debug) {
274
System.out.println("startPrefixMapping():"
275
+ " prefix = " + prefix
276
+ " uri = " + uri);
277
}
278
}
279
}
280
281
class HostIdentifierException extends Exception {
282
String result;
283
TestCase test;
284
285
HostIdentifierException(TestCase test, String result) {
286
this.test = test;
287
this.result = result;
288
}
289
290
public String getMessage() {
291
return "Test " + test.id + " " + "Failed: "
292
+ "Expected = " + test.expectedHostIdentifier + " "
293
+ "Actual = " + result;
294
}
295
}
296
297
class TestCase {
298
private static final boolean debug = false;
299
300
String id;
301
String hostid;
302
String expectedHostIdentifier;
303
String description;
304
305
public TestCase(String id, String hostid) {
306
this.id = id;
307
this.hostid = hostid;
308
}
309
310
public void run() throws Exception {
311
if (expectedHostIdentifier == null) {
312
throw new IllegalArgumentException(
313
"HostIdentifier not initialized");
314
}
315
316
HostIdentifier test_hostid = new HostIdentifier(hostid);
317
318
String test_hostid_str = test_hostid.toString();
319
320
if (debug) {
321
System.out.println("comparing HostIdentifier result");
322
}
323
324
if (test_hostid_str.compareTo(expectedHostIdentifier) != 0) {
325
throw new HostIdentifierException(this, test_hostid_str);
326
}
327
}
328
329
public void setDescription(String description) {
330
this.description = description;
331
}
332
333
public void setExpectedHostIdentifier(String expectedHostIdentifier) {
334
this.expectedHostIdentifier = expectedHostIdentifier;
335
}
336
}
337
338