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]");
63 final private static void invokestatic() {
70 } catch (NoClassDefFoundError t) {
76 private void getstatic() {
80 check(getstaticI.i, 123);
83 } catch (NoClassDefFoundError t) {
90 check(getstaticJ.l, 1234567890123L);
93 } catch (NoClassDefFoundError t) {
100 check(getstaticF.f, 123.456F);
103 } catch (NoClassDefFoundError t) {
108 p("getstatic (D): ");
110 check(getstaticD.d, 789.012);
113 } catch (NoClassDefFoundError t) {
118 p("getstatic (L): ");
120 check(getstaticL.o, null);
123 } catch (NoClassDefFoundError t) {
128 private void putstatic() {
130 p("putstatic (I): ");
134 check(putstaticI.i, i);
137 } catch (NoClassDefFoundError t) {
142 p("putstatic (J): ");
144 long l = 1234567890123L;
146 check(putstaticJ.l, l);
149 } catch (NoClassDefFoundError t) {
154 p("putstatic (F): ");
158 check(putstaticF.f, f);
161 } catch (NoClassDefFoundError t) {
166 p("putstatic (D): ");
170 check(putstaticD.d, d);
173 } catch (NoClassDefFoundError t) {
179 p("putstatic (L): ");
183 check(putstaticL.o, o);
186 } catch (NoClassDefFoundError t) {
191 private void putstaticconst() {
193 p("putstaticconst (I): ");
195 putstaticconstI.i = 123;
196 check(putstaticconstI.i, 123);
199 } catch (NoClassDefFoundError t) {
204 p("putstaticconst (J): ");
206 putstaticconstJ.l = 1234567890123L;
207 check(putstaticconstJ.l, 1234567890123L);
210 } catch (NoClassDefFoundError t) {
215 p("putstaticconst (F): ");
217 putstaticconstF.f = 123.456F;
218 check(putstaticconstF.f, 123.456F);
221 } catch (NoClassDefFoundError t) {
226 p("putstaticconst (D): ");
228 putstaticconstD.d = 789.012;
229 check(putstaticconstD.d, 789.012);
232 } catch (NoClassDefFoundError t) {
237 p("putstaticconst zero (I): ");
239 putstaticconstI.i = 0;
240 check(putstaticconstI.i, 0);
243 } catch (NoClassDefFoundError t) {
248 p("putstaticconst zero (J): ");
250 putstaticconstJ.l = 0L;
251 check(putstaticconstJ.l, 0L);
254 } catch (NoClassDefFoundError t) {
259 p("putstaticconst zero (F): ");
261 putstaticconstF.f = 0.0F;
262 check(putstaticconstF.f, 0.0F);
265 } catch (NoClassDefFoundError t) {
270 p("putstaticconst zero (D): ");
272 putstaticconstD.d = 0.0;
273 check(putstaticconstD.d, 0.0);
276 } catch (NoClassDefFoundError t) {
281 p("putstaticconst zero (L): ");
283 putstaticconstL.o = null;
284 check(putstaticconstL.o, null);
287 } catch (NoClassDefFoundError t) {
292 p("putstaticconst unresolved class: ");
294 putstaticconstC.c = putstaticconstC.class;
295 check(putstaticconstC.c, Class.forName("putstaticconstC"));
298 } catch (NoClassDefFoundError t) {
300 } catch (ClassNotFoundException t) {
305 private void getfield() {
309 check(new getfieldI().i, 123);
312 } catch (NoClassDefFoundError t) {
319 check(new getfieldJ().l, 1234567890123L);
322 } catch (NoClassDefFoundError t) {
329 check(new getfieldF().f, 123.456F);
332 } catch (NoClassDefFoundError t) {
339 check(new getfieldD().d, 789.012);
342 } catch (NoClassDefFoundError t) {
349 check(new getfieldL().o, null);
352 } catch (NoClassDefFoundError t) {
357 private void putfield() {
361 putfieldI pfi = new putfieldI();
367 } catch (NoClassDefFoundError t) {
374 putfieldJ pfj = new putfieldJ();
375 long l = 1234567890123L;
380 } catch (NoClassDefFoundError t) {
387 putfieldF pff = new putfieldF();
393 } catch (NoClassDefFoundError t) {
400 putfieldD pfd = new putfieldD();
406 } catch (NoClassDefFoundError t) {
413 putfieldL pfl = new putfieldL();
419 } catch (NoClassDefFoundError t) {
424 private void putfieldconst() {
426 p("putfieldconst (I): ");
428 putfieldconstI pfci = new putfieldconstI();
433 } catch (NoClassDefFoundError t) {
438 p("putfieldconst (J): ");
440 putfieldconstJ pfcj = new putfieldconstJ();
441 pfcj.l = 1234567890123L;
442 check(pfcj.l, 1234567890123L);
445 } catch (NoClassDefFoundError t) {
450 p("putfieldconst (F): ");
452 putfieldconstF pfcf = new putfieldconstF();
454 check(pfcf.f, 123.456F);
457 } catch (NoClassDefFoundError t) {
462 p("putfieldconst (D): ");
464 putfieldconstD pfcd = new putfieldconstD();
466 check(pfcd.d, 789.012);
469 } catch (NoClassDefFoundError t) {
474 p("putfieldconst zero (I): ");
476 putfieldconstI pfci = new putfieldconstI();
481 } catch (NoClassDefFoundError t) {
486 p("putfieldconst zero (J): ");
488 putfieldconstJ pfcj = new putfieldconstJ();
493 } catch (NoClassDefFoundError t) {
498 p("putfieldconst zero (F): ");
500 putfieldconstF pfcf = new putfieldconstF();
505 } catch (NoClassDefFoundError t) {
510 p("putfieldconst zero (D): ");
512 putfieldconstD pfcd = new putfieldconstD();
517 } catch (NoClassDefFoundError t) {
522 p("putfieldconst zero (L): ");
524 putfieldconstL pfcl = new putfieldconstL();
529 } catch (NoClassDefFoundError t) {
534 p("putfieldconst unresolved class: ");
536 putfieldconstC pfcc = new putfieldconstC();
537 pfcc.c = putfieldconstC.class;
538 check(pfcc.c, Class.forName("putfieldconstC"));
541 } catch (NoClassDefFoundError t) {
543 } catch (ClassNotFoundException t) {
548 private void newarray() {
552 newarray[] na = new newarray[1];
555 } catch (NoClassDefFoundError t) {
560 private void multianewarray() {
562 p("multianewarray: ");
564 multianewarray[][] ma = new multianewarray[1][1];
567 } catch (NoClassDefFoundError t) {
572 private void invokespecial() {
574 p("invokespecial: ");
579 } catch (NoClassDefFoundError t) {
584 private void checkcast() {
585 Object o = new Object();
589 p("checkcast class: ");
591 checkcastC cc = (checkcastC) o;
595 } catch (ClassCastException e) {
597 } catch (NoClassDefFoundError t) {
603 p("checkcast interface: ");
605 checkcastI ci = (checkcastI) o;
609 } catch (ClassCastException e) {
611 } catch (NoClassDefFoundError t) {
618 Object[] oa = new Object[1];
621 p("checkcast class array: ");
623 checkcastC[] cca = (checkcastC[]) oa;
627 } catch (ClassCastException e) {
629 } catch (NoClassDefFoundError t) {
634 private void _instanceof() {
635 Object o = new Object();
638 p("instanceof class: ");
640 if (o instanceof instanceofC)
646 } catch (NoClassDefFoundError t) {
651 p("instanceof interface: ");
653 if (o instanceof instanceofI)
659 } catch (NoClassDefFoundError t) {
666 Object[] oa = new Object[1];
669 p("instanceof class array: ");
671 if (oa instanceof instanceofC[])
677 } catch (NoClassDefFoundError t) {
682 private void aastoreconst() {
683 Class[] ca = new Class[1];
686 p("aastoreconst of unresolved class != NULL: ");
688 ca[0] = aastoreconstClass.class;
695 p("aastoreconst of unresolved correct value: ");
696 check(ca[0],Class.forName("aastoreconstClass"));
699 } catch (NoClassDefFoundError t) {
701 } catch (ClassNotFoundException t) {
706 private static final void ok() {
710 private static final void failed() {
714 private static final void failed(Throwable t) {
718 private static final void check(int a, int b) {
722 pln("FAILED: " + a + " != " + b + " (0x" + Integer.toHexString(a) + " != 0x" + Integer.toHexString(b) + ")");
725 private static final void check(long a, long b) {
729 pln("FAILED: " + a + " != " + b + " (0x" + Long.toHexString(a) + " != 0x" + Long.toHexString(b) + ")");
732 private static final void check(float a, float b) {
736 pln("FAILED: " + a + " != " + b);
739 private static final void check(double a, double b) {
743 pln("FAILED: " + a + " != " + b);
746 private static final void check(Object a, Object b) {
750 pln("FAILED: " + a + " != " + b);
753 private static final void p(String s) {
757 private static final void pln(String s) {
758 System.out.println(s);