blob: a5680fcdee2027ed048d814afd005b3c01f58e4f [file] [log] [blame]
J. Duke319a3b92007-12-01 00:00:00 +00001/*
2 * Copyright 2004-2007 Sun Microsystems, Inc. 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
20 * CA 95054 USA or visit www.sun.com if you need additional information or
21 * have any questions.
22 */
23
24/**
25 *
26 *
27 * This isn't the test case: ResourceCheckTest.sh is.
28 * Refer to ResourceCheckTest.sh when running this test.
29 *
30 * @bug 5008856 5023573 5024917 5062569
31 * @summary 'missing resource key' error for key = "Operating system"
32 */
33
34import java.awt.event.KeyEvent;
35
36import sun.tools.jconsole.Resources;
37
38public class ResourceCheckTest {
39
40 public static void main(String[] args){
41 Object [][] testData = {
42 {"<", "", "", "", ""},
43 {"<<", "", "", "", ""},
44 {">", "", "", "", ""},
45 {" 1 day", "", "", "", ""},
46 {" 1 hour", "", "", "", ""},
47 {" 1 min", "", "", "", ""},
48 {" 1 month", "", "", "", ""},
49 {" 1 year", "", "", "", ""},
50 {" 2 hours", "", "", "", ""},
51 {" 3 hours", "", "", "", ""},
52 {" 3 months", "", "", "", ""},
53 {" 5 min", "", "", "", ""},
54 {" 6 hours", "", "", "", ""},
55 {" 6 months", "", "", "", ""},
56 {" 7 days", "", "", "", ""},
57 {"10 min", "", "", "", ""},
58 {"12 hours", "", "", "", ""},
59 {"30 min", "", "", "", ""},
60 {"ACTION", "", "", "", ""},
61 {"ACTION_INFO", "", "", "", ""},
62 {"All", "", "", "", ""},
63 {"Architecture", "", "", "", ""},
64 {"Attribute", "", "", "", ""},
65 {"Attribute value", "", "", "", ""},
66 {"Attribute values", "", "", "", ""},
67 {"Attributes", "", "", "", ""},
68 {"Blank", "", "", "", ""},
69 {"BlockedCount WaitedCount", "BlockedCount", "WaitedCount", "", ""},
70 {"Boot class path", "", "", "", ""},
71 {"BorderedComponent.moreOrLessButton.toolTip", "", "", "", ""},
72 {"Close", "", "", "", ""},
73 {"CPU Usage", "", "", "", ""},
74 {"CPUUsageFormat","PhonyPercentage", "", "", ""},
75 {"Cancel", "", "", "", ""},
76 {"Cascade", "", "", "", ""},
77 {"Cascade.mnemonic", "", "", "", ""},
78 {"Chart:", "", "", "", ""},
79 {"Chart:.mnemonic", "", "", "", ""},
80 {"ClassTab.infoLabelFormat", "LoadedCount", "UnloadedCount", "TotalCount", ""},
81 {"ClassTab.loadedClassesPlotter.accessibleName", "", "", "", ""},
82 {"Class path", "", "", "", ""},
83 {"Classes", "", "", "", ""},
84 {"ClassName", "", "", "", ""},
85 {"Column.Name", "", "", "", ""},
86 {"Column.PID", "", "", "", ""},
87 {"Committed", "", "", "", ""},
88 {"Committed memory", "", "", "", ""},
89 {"Committed virtual memory", "", "", "", ""},
90 {"Compiler", "", "", "", ""},
91 {"Connect...", "", "", "", ""},
92 {"Connect", "", "", "", ""},
93 {"Connect.mnemonic", "", "", "", ""},
94 {"ConnectDialog.connectButton.toolTip", "", "", "", ""},
95 {"ConnectDialog.accessibleDescription", "", "", "", ""},
96 {"ConnectDialog.masthead.accessibleName", "", "", "", ""},
97 {"ConnectDialog.masthead.title", "", "", "", ""},
98 {"ConnectDialog.statusBar.accessibleName", "", "", "", ""},
99 {"ConnectDialog.title", "", "", "", ""},
100 {"Connected. Click to disconnect.", "", "", "", ""},
101 {"connectingTo1", "PhonyConnectionName", "", "", ""},
102 {"connectingTo2", "PhonyConnectionName", "", "", ""},
103 {"connectionFailed1", "", "", "", ""},
104 {"connectionFailed2", "PhonyConnectionName", "", "", ""},
105 {"connectionLost1", "", "", "", ""},
106 {"connectionLost2", "PhonyConnectionName", "", "", ""},
107 {"Connection failed", "", "", "", ""},
108 {"Connection", "", "", "", ""},
109 {"Connection.mnemonic", "", "", "", ""},
110 {"Connection name", "", "", "", ""},
111 {"ConnectionName (disconnected)", "Phony", "Phony", "", ""},
112 {"Constructor", "", "", "", ""},
113 {"Create", "Phony", "Phony", "", ""},
114 {"Current classes loaded", "", "", "", ""},
115 {"Current heap size", "", "", "", ""},
116 {"Current value", "PhonyValue", "", "", ""},
117 {"Daemon threads", "", "", "", ""},
118 {"deadlockAllTab", "", "", "", ""},
119 {"deadlockTab", "", "", "", ""},
120 {"deadlockTabN", "PhonyInt", "", "", ""},
121 {"Description", "", "", "", ""},
122 {"Descriptor", "", "", "", ""},
123 {"Details", "", "", "", ""},
124 {"Detect Deadlock", "", "", "", ""},
125 {"Detect Deadlock.mnemonic", "", "", "", ""},
126 {"Detect Deadlock.toolTip", "", "", "", ""},
127 {"Dimension is not supported:", "", "", "", ""},
128 {"Discard chart", "", "", "", ""},
129 {"Disconnected. Click to connect.", "", "", "", ""},
130 {"Double click to expand/collapse", "", "", "", ""},
131 {"Double click to visualize", "", "", "", ""},
132 {"DurationDaysHoursMinutes", 0, 13, 54, ""},
133 {"DurationDaysHoursMinutes", 1, 13, 54, ""},
134 {"DurationDaysHoursMinutes", 2, 13, 54, ""},
135 {"DurationDaysHoursMinutes", 1024, 13, 45, ""},
136 {"DurationHoursMinutes", 0, 13, "", ""},
137 {"DurationHoursMinutes", 1, 0, "", ""},
138 {"DurationHoursMinutes", 1, 1, "", ""},
139 {"DurationHoursMinutes", 2, 42, "", ""},
140 {"DurationMinutes", 0, "", "", ""},
141 {"DurationMinutes", 1, "", "", ""},
142 {"DurationMinutes", 2, "", "", ""},
143 {"DurationSeconds", 0, "", "", ""},
144 {"DurationSeconds", 1, "", "", ""},
145 {"DurationSeconds", 2, "", "", ""},
146 {"Empty array", "", "", "", ""},
147 {"Error", "", "", "", ""},
148 {"Error: MBeans already exist", "", "", "", ""},
149 {"Error: MBeans do not exist", "", "", "", ""},
150 {"Event", "", "", "", ""},
151 {"Exit", "", "", "", ""},
152 {"Exit.mnemonic", "", "", "", ""},
153 {"expand", "", "", "", ""},
154 {"Fail to load plugin", "", "", "", ""},
155 {"FileChooser.fileExists.cancelOption", "", "", "", ""},
156 {"FileChooser.fileExists.message", "PhonyFileName", "", "", ""},
157 {"FileChooser.fileExists.okOption", "", "", "", ""},
158 {"FileChooser.fileExists.title", "", "", "", ""},
159 {"FileChooser.savedFile", "PhonyFilePath", "PhonyFileSize", "", ""},
160 {"FileChooser.saveFailed.message", "PhonyFilePath", "PhonyMessage", "", ""},
161 {"FileChooser.saveFailed.title", "", "", "", ""},
162 {"Free physical memory", "", "", "", ""},
163 {"Free swap space", "", "", "", ""},
164 {"Garbage collector", "", "", "", ""},
165 {"GC time", "", "", "", ""},
166 {"GC time details", 54, "Phony", 11, ""},
167 {"GcInfo", "Phony", -1, 768, ""},
168 {"GcInfo", "Phony", 0, 768, ""},
169 {"GcInfo", "Phony", 1, 768, ""},
170 {"Heap", "", "", "", ""},
171 {"Heap Memory Usage", "", "", "", ""},
172 {"Help.AboutDialog.accessibleDescription", "", "", "", ""},
173 {"Help.AboutDialog.jConsoleVersion", "DummyVersion", "", "", ""},
174 {"Help.AboutDialog.javaVersion", "DummyVersion", "", "", ""},
175 {"Help.AboutDialog.masthead.accessibleName", "", "", "", ""},
176 {"Help.AboutDialog.masthead.title", "", "", "", ""},
177 {"Help.AboutDialog.title", "", "", "", ""},
178 {"Help.AboutDialog.userGuideLink", "DummyMessage", "", "", ""},
179 {"Help.AboutDialog.userGuideLink.mnemonic", "", "", "", ""},
180 {"Help.AboutDialog.userGuideLink.url", "DummyURL", "", "", ""},
181 {"HelpMenu.About.title", "", "", "", ""},
182 {"HelpMenu.About.title.mnemonic", "", "", "", ""},
183 {"HelpMenu.UserGuide.title", "", "", "", ""},
184 {"HelpMenu.UserGuide.title.mnemonic", "", "", "", ""},
185 {"HelpMenu.title", "", "", "", ""},
186 {"HelpMenu.title.mnemonic", "", "", "", ""},
187 {"Hotspot MBeans...", "", "", "", ""},
188 {"Hotspot MBeans....mnemonic", "", "", "", ""},
189 {"Hotspot MBeans.dialog.accessibleDescription", "", "", "", ""},
190 {"Impact", "", "", "", ""},
191 {"Info", "", "", "", ""},
192 {"INFO", "", "", "", ""},
193 {"Invalid plugin path", "", "", "", ""},
194 {"Invalid URL", "", "", "", ""},
195 {"Is", "", "", "", ""},
196 {"Java Monitoring & Management Console", "", "", "", ""},
197 {"Java Virtual Machine", "", "", "", ""},
198 {"JConsole: ", "", "", "", ""},
199 {"JConsole.accessibleDescription", "", "", "", ""},
200 {"JConsole version", "PhonyVersion", "", "", ""},
201 {"JIT compiler", "", "", "", ""},
202 {"Library path", "", "", "", ""},
203 {"Live Threads", "", "", "", ""},
204 {"Loaded", "", "", "", ""},
205 {"Local Process:", "", "", "", ""},
206 {"Local Process:.mnemonic", "", "", "", ""},
207 {"Manage Hotspot MBeans in: ", "", "", "", ""},
208 {"Management Not Enabled", "", "", "", ""},
209 {"Management Will Be Enabled", "", "", "", ""},
210 {"Masthead.font", "", "", "", ""},
211 {"Max", "", "", "", ""},
212 {"Max", "", "", "", ""},
213 {"Maximum heap size", "", "", "", ""},
214 {"MBeanAttributeInfo", "", "", "", ""},
215 {"MBeanInfo", "", "", "", ""},
216 {"MBeanNotificationInfo", "", "", "", ""},
217 {"MBeanOperationInfo", "", "", "", ""},
218 {"MBeans", "", "", "", ""},
219 {"MBeansTab.clearNotificationsButton", "", "", "", ""},
220 {"MBeansTab.clearNotificationsButton.mnemonic", "", "", "", ""},
221 {"MBeansTab.clearNotificationsButton.toolTip", "", "", "", ""},
222 {"MBeansTab.compositeNavigationMultiple", 0, 0, "", ""},
223 {"MBeansTab.compositeNavigationSingle", "", "", "", ""},
224 {"MBeansTab.refreshAttributesButton", "", "", "", ""},
225 {"MBeansTab.refreshAttributesButton.mnemonic", "", "", "", ""},
226 {"MBeansTab.refreshAttributesButton.toolTip", "", "", "", ""},
227 {"MBeansTab.subscribeNotificationsButton", "", "", "", ""},
228 {"MBeansTab.subscribeNotificationsButton.mnemonic", "", "", "", ""},
229 {"MBeansTab.subscribeNotificationsButton.toolTip", "", "", "", ""},
230 {"MBeansTab.tabularNavigationMultiple", 0, 0, "", ""},
231 {"MBeansTab.tabularNavigationSingle", "", "", "", ""},
232 {"MBeansTab.unsubscribeNotificationsButton", "", "", "", ""},
233 {"MBeansTab.unsubscribeNotificationsButton.mnemonic", "", "", "", ""},
234 {"MBeansTab.unsubscribeNotificationsButton.toolTip", "", "", "", ""},
235 {"Memory", "", "", "", ""},
236 {"MemoryPoolLabel", "PhonyMemoryPool", "", "", ""},
237 {"MemoryTab.heapPlotter.accessibleName", "", "", "", ""},
238 {"MemoryTab.infoLabelFormat", "UsedCount", "CommittedCount", "MaxCount", ""},
239 {"MemoryTab.nonHeapPlotter.accessibleName", "", "", "", ""},
240 {"MemoryTab.poolChart.aboveThreshold", "Threshold", "", "", ""},
241 {"MemoryTab.poolChart.accessibleName", "", "", "", ""},
242 {"MemoryTab.poolChart.belowThreshold", "Threshold", "", "", ""},
243 {"MemoryTab.poolPlotter.accessibleName", "PhonyMemoryPool", "", "", ""},
244 {"Message", "", "", "", ""},
245 {"Method successfully invoked", "", "", "", ""},
246 {"Monitor locked", "", "", "", ""},
247 {"Minimize All", "", "", "", ""},
248 {"Minimize All.mnemonic", "", "", "", ""},
249 {"Name", "", "", "", ""},
250 {"Name and Build", "PhonyName", "PhonyBuild", "", ""},
251 {"Name Build and Mode", "PhonyName", "PhonyBuild", "PhonyMode", ""},
252 {"Name State", "PhonyName", "PhonyState", "", ""},
253 {"Name State LockName", "PhonyName", "PhonyState", "PhonyLock", ""},
254 {"Name State LockName LockOwner", "PhonyName", "PhonyState", "PhonyLock", "PhonyOwner"},
255 {"New Connection...", "", "", "", ""},
256 {"New Connection....mnemonic", "", "", "", ""},
257 {"No deadlock detected", "", "", "", ""},
258 {"Non-Heap", "", "", "", ""},
259 {"Non-Heap Memory Usage", "", "", "", ""},
260 {"Notification", "", "", "", ""},
261 {"Notification buffer", "", "", "", ""},
262 {"Notifications", "", "", "", ""},
263 {"NotifTypes", "", "", "", ""},
264 {"Number of Loaded Classes", "", "", "", ""},
265 {"Number of processors", "", "", "", ""},
266 {"Number of Threads", "", "", "", ""},
267 {"ObjectName", "", "", "", ""},
268 {"Operating System", "", "", "", ""},
269 {"Operation", "", "", "", ""},
270 {"Operation invocation", "", "", "", ""},
271 {"Operation return value", "", "", "", ""},
272 {"Operations", "", "", "", ""},
273 {"Overview", "", "", "", ""},
274 {"OverviewPanel.plotter.accessibleName", "PhonyPlotter", "", "", ""},
275 {"Parameter", "", "", "", ""},
276 {"Password: ", "", "", "", ""},
277 {"Password: .mnemonic", "", "", "", ""},
278 {"Password.accessibleName", "", "", "", ""},
279 {"Peak", "", "", "", ""},
280 {"Perform GC", "", "", "", ""},
281 {"Perform GC.mnemonic", "", "", "", ""},
282 {"Perform GC.toolTip", "", "", "", ""},
283 {"Plotter.accessibleName", "", "", "", ""},
284 {"Plotter.accessibleName.keyAndValue", "Key", "Value", "", ""},
285 {"Plotter.accessibleName.noData", "", "", "", ""},
286 {"Plotter.saveAsMenuItem", "", "", "", ""},
287 {"Plotter.saveAsMenuItem.mnemonic", "", "", "", ""},
288 {"Plotter.timeRangeMenu", "", "", "", ""},
289 {"Plotter.timeRangeMenu.mnemonic", "", "", "", ""},
290 {"plot", "", "", "", ""},
291 {"Problem adding listener", "", "", "", ""},
292 {"Problem displaying MBean", "", "", "", ""},
293 {"Problem invoking", "", "", "", ""},
294 {"Problem removing listener", "", "", "", ""},
295 {"Problem setting attribute", "", "", "", ""},
296 {"Process CPU time", "", "", "", ""},
297 {"Readable", "", "", "", ""},
298 {"Reconnect", "", "", "", ""},
299 {"Remote Process:", "", "", "", ""},
300 {"Remote Process:.mnemonic", "", "", "", ""},
301 {"Remote Process.textField.accessibleName", "", "", "", ""},
302 {"remoteTF.usage", "", "", "", ""},
303 {"Restore All", "", "", "", ""},
304 {"Restore All.mnemonic", "", "", "", ""},
305 {"ReturnType", "", "", "", ""},
306 {"SeqNum", "", "", "", ""},
307 {"Size Bytes", 512, "", "", ""},
308 {"Size Gb", 512, "", "", ""},
309 {"Size Kb", 512, "", "", ""},
310 {"Size Mb", 512, "", "", ""},
311 {"Source", "", "", "", ""},
312 {"Stack trace", "", "", "", ""},
313 {"SummaryTab.headerDateTimeFormat", "", "", "", ""},
314 {"SummaryTab.pendingFinalization.label", "", "", "", ""},
315 {"SummaryTab.pendingFinalization.value", "ObjectCount", "", "", ""},
316 {"SummaryTab.tabName", "", "", "", ""},
317 {"SummaryTab.vmVersion", "VMName", "VMVersion", "", ""},
318 {"ThreadTab.infoLabelFormat", "LiveCount", "PeakCount", "TotalCount", ""},
319 {"ThreadTab.threadInfo.accessibleName", "", "", "", ""},
320 {"ThreadTab.threadPlotter.accessibleName", "", "", "", ""},
321 {"Threads", "", "", "", ""},
322 {"Threshold", "", "", "", ""},
323 {"Tile", "", "", "", ""},
324 {"Tile.mnemonic", "", "", "", ""},
325 {"Time", "", "", "", ""},
326 {"Time Range:", "", "", "", ""},
327 {"Time Range:.mnemonic", "", "", "", ""},
328 {"TimeStamp", "", "", "", ""},
329 {"Total classes loaded", "", "", "", ""},
330 {"Total classes unloaded", "", "", "", ""},
331 {"Total compile time", "", "", "", ""},
332 {"Total Loaded", "", "", "", ""},
333 {"Total physical memory", "", "", "", ""},
334 {"Total swap space", "", "", "", ""},
335 {"Total threads started", "", "", "", ""},
336 {"Type", "", "", "", ""},
337 {"Unavailable", "", "", "", ""},
338 {"UNKNOWN", "", "", "", ""},
339 {"Unregister", "", "", "", ""},
340 {"Uptime", "", "", "", ""},
341 {"Usage Threshold", "", "", "", ""},
342 {"Used", "", "", "", ""},
343 {"Username: ", "", "", "", ""},
344 {"Username: .mnemonic", "", "", "", ""},
345 {"Username.accessibleName", "", "", "", ""},
346 {"UserData", "", "", "", ""},
347 {"Value", "", "", "", ""},
348 {"Vendor", "", "", "", ""},
349 {"Verbose Output", "", "", "", ""},
350 {"Verbose Output.toolTip", "", "", "", ""},
351 {"visualize", "", "", "", ""},
352 {"VM", "", "", "", ""},
353 {"VMInternalFrame.accessibleDescription", "", "", "", ""},
354 {"VM arguments", "", "", "", ""},
355 {"Virtual Machine", "", "", "", ""},
356 {"Window", "", "", "", ""},
357 {"Window.mnemonic", "", "", "", ""},
358 {"Writable", "", "", "", ""},
359 {"zz usage text", "PhonyName", "", "", ""},
360 };
361 //boolean verbose = false;
362 boolean verbose = true;
363
364 long badLookups = 0;
365 System.out.println("Start...");
366 for (int ii = 0; ii < testData.length; ii++) {
367 String key = (String)testData[ii][0];
368
369 if (key.endsWith(".mnemonic")) {
370 String baseKey = key.substring(0, key.length() - ".mnemonic".length());
371 int mnemonic = Resources.getMnemonicInt(baseKey);
372 if (mnemonic == 0) {
373 badLookups++;
374 System.out.println("****lookup failed for key = " + key);
375 } else {
376 if (verbose) {
377 System.out.println(" mnemonic: " + KeyEvent.getKeyText(mnemonic));
378 }
379 }
380 continue;
381 }
382
383 String ss = Resources.getText(key,
384 testData[ii][1],
385 testData[ii][2],
386 testData[ii][3],
387 testData[ii][4]);
388 if (ss.startsWith("missing resource key")) {
389 badLookups++;
390 System.out.println("****lookup failed for key = " + key);
391 } else {
392 if (verbose) {
393 System.out.println(" " + ss);
394 }
395 }
396 }
397 if (badLookups > 0) {
398 throw new Error ("Resource lookup failed " + badLookups +
399 " time(s); Test failed");
400 }
401 System.out.println("...Finished.");
402 }
403}