+ void checkIsSameObject() {
+ p("IsSameObject:");
+
+ Object obj1 = new Object();
+ Object obj2 = new Integer(1);
+ Class clazz = Object.class;
+
+ equal(IsSameObject(obj1, obj1), true);
+ equal(IsSameObject(clazz, clazz), true);
+ equal(IsSameObject(null, null), true);
+ equal(IsSameObject(obj1, obj2), false);
+ equal(IsSameObject(obj1, clazz), false);
+ equal(IsSameObject(obj1, null), false);
+ }
+
+ void checkPushLocalFrame() {
+ p("PushLocalFrame:");
+
+ equal(PushLocalFrame(100), 0);
+ }
+
+ void checkThrow() {
+ p("Throw");
+
+ try {
+ Throw();
+ p("FAILED, no exception thrown");
+ } catch (Exception e) {
+ p("PASS, " + e);
+ }
+ }
+
+ void checkGetObjectClass() {
+ p("GetObjectClass:");
+
+ Object obj1 = new Object();
+ Object obj2 = new Integer(1);
+ Class clazz1 = Object.class;
+ Class clazz2 = Integer.class;
+
+ equal(GetObjectClass(obj1), clazz1);
+ equal(GetObjectClass(obj2), clazz2);
+ }
+
+ void checkNewString() {
+ p("NewString:");
+
+ equal(NewString(2), "Test String from JNI with UTF");
+ }
+
+ void checkFields() {
+ p("Field Access:");
+
+ equal(GetStaticIntField(), jsfI);
+ equal(GetStaticObjectField(), jsfL);
+
+ checkjniobj o = new checkjniobj();
+
+ equal(GetIntField(o), o.jfI);
+ equal(GetObjectField(o), o.jfL);
+
+ SetStaticIntField(0xABCDEF); equal(jsfI, 0xABCDEF);
+ }
+
+ void checkArrays() {
+ p("Array Access:");
+
+ int i;
+ boolean result;
+
+ int[] aI = NewIntArray(10);
+ for (i = 0, result = true; i < aI.length; i++) result &= (aI[i] == i);
+ if (result)
+ p("PASS, size=" + aI.length);
+ else
+ p("FAILED");
+
+ long[] aL = NewLongArray(20);
+ for (i = 0, result = true; i < aL.length; i++) result &= (aL[i] == i);
+ if (result)
+ p("PASS, size=" + aL.length);
+ else
+ p("FAILED");
+ }
+