1 public class test extends Thread {
2 static boolean doit = true;
4 public static void main(String[] argv) {
8 for (int i = 0; i < argv.length; i++) {
9 if (argv[i].equals("--help")) {
12 } else if (argv[i].equals("skip")) {
16 threadcount = Integer.valueOf(argv[i]).intValue();
21 System.out.println("Running with " + threadcount + " threads.");
23 for (int i = 0; i < threadcount; i++) {
29 System.out.println("test [number of threads] [skip]");
60 final private static void invokestatic() {
61 System.out.print("invokestatic: ");
66 System.out.println("OK");
67 } catch (Throwable t) {
68 System.out.println("FAILED: " + t);
73 private void getstatic() {
77 check(getstaticI.i, 123);
80 } catch (Throwable t) {
87 check(getstaticJ.l, 1234567890123L);
90 } catch (Throwable t) {
97 check(getstaticF.f, 123.456F);
100 } catch (Throwable t) {
105 p("getstatic (D): ");
107 check(getstaticD.d, 789.012);
110 } catch (Throwable t) {
115 p("getstatic (L): ");
117 check(getstaticL.o, null);
120 } catch (Throwable t) {
125 private void putstatic() {
127 p("putstatic (I): ");
131 check(putstaticI.i, i);
134 } catch (Throwable t) {
139 p("putstatic (J): ");
141 long l = 1234567890123L;
143 check(putstaticJ.l, l);
146 } catch (Throwable t) {
151 p("putstatic (F): ");
155 check(putstaticF.f, f);
158 } catch (Throwable t) {
163 p("putstatic (D): ");
167 check(putstaticD.d, d);
170 } catch (Throwable t) {
176 p("putstatic (L): ");
180 check(putstaticL.o, o);
183 } catch (Throwable t) {
188 private void getfield() {
192 check(new getfieldI().i, 123);
195 } catch (Throwable t) {
202 check(new getfieldJ().l, 1234567890123L);
205 } catch (Throwable t) {
212 check(new getfieldF().f, 123.456F);
215 } catch (Throwable t) {
222 check(new getfieldD().d, 789.012);
225 } catch (Throwable t) {
232 check(new getfieldL().o, null);
235 } catch (Throwable t) {
240 private void putfield() {
244 putfieldI pfi = new putfieldI();
250 } catch (Throwable t) {
257 putfieldJ pfj = new putfieldJ();
258 long l = 1234567890123L;
263 } catch (Throwable t) {
270 putfieldF pff = new putfieldF();
276 } catch (Throwable t) {
283 putfieldD pfd = new putfieldD();
289 } catch (Throwable t) {
296 putfieldL pfl = new putfieldL();
302 } catch (Throwable t) {
307 private void putfieldconst() {
309 p("putfieldconst (I,F): ");
311 putfieldconstIF pfcif = new putfieldconstIF();
316 } catch (Throwable t) {
321 p("putfieldconst zero (I,F): ");
323 putfieldconstIF pfcif = new putfieldconstIF();
328 } catch (Throwable t) {
333 p("putfieldconst (J,D,L): ");
335 putfieldconstJDL pfcjdl = new putfieldconstJDL();
336 pfcjdl.l = 1234567890123L;
337 check(pfcjdl.l, 1234567890123L);
340 } catch (Throwable t) {
345 p("putfieldconst zero (J,D,L): ");
347 putfieldconstJDL pfcjdl = new putfieldconstJDL();
352 } catch (Throwable t) {
357 private void newarray() {
361 newarray[] na = new newarray[1];
364 } catch (Throwable t) {
369 private void multianewarray() {
371 p("multianewarray: ");
373 multianewarray[][] ma = new multianewarray[1][1];
376 } catch (Throwable t) {
381 private void invokespecial() {
383 p("invokespecial: ");
388 } catch (Throwable t) {
393 private void checkcast() {
394 Object o = new Object();
398 p("checkcast class: ");
400 checkcastC cc = (checkcastC) o;
404 } catch (ClassCastException e) {
406 } catch (Throwable t) {
412 p("checkcast interface: ");
414 checkcastI ci = (checkcastI) o;
418 } catch (ClassCastException e) {
420 } catch (Throwable t) {
427 Object[] oa = new Object[1];
430 p("checkcast class array: ");
432 checkcastC[] cca = (checkcastC[]) oa;
436 } catch (ClassCastException e) {
438 } catch (Throwable t) {
443 private void _instanceof() {
444 Object o = new Object();
447 p("instanceof class: ");
449 if (o instanceof instanceofC)
455 } catch (Throwable t) {
460 p("instanceof interface: ");
462 if (o instanceof instanceofI)
468 } catch (Throwable t) {
475 Object[] oa = new Object[1];
478 p("instanceof class array: ");
480 if (oa instanceof instanceofC[])
486 } catch (Throwable t) {
495 private void failed() {
499 private void failed(Throwable t) {
503 private void check(int a, int b) {
507 pln("FAILED: " + a + " != " + b);
510 private void check(long a, long b) {
514 pln("FAILED: " + a + " != " + b);
517 private void check(float a, float b) {
521 pln("FAILED: " + a + " != " + b);
524 private void check(double a, double b) {
528 pln("FAILED: " + a + " != " + b);
531 private void check(Object a, Object b) {
535 pln("FAILED: " + a + " != " + b);
538 private final void p(String s) {
542 private final void pln(String s) {
543 System.out.println(s);