/*
 * Method: org.apache.harmony.vts.test.vm.jni.object_methods.CallNonvirtualComplexMethodTest.nativeExecute(Lorg/apache/harmony/vts/test/vm/jni/object_methods/ChildTestClass;Ljava/lang/Class;Lorg/apache/harmony/vts/test/vm/jni/object_methods/ChildNativeTestClass;Ljava/lang/Class;)Z
 */
JNIEXPORT jboolean JNICALL
Java_org_apache_harmony_vts_test_vm_jni_object_1methods_CallNonvirtualComplexMethodTest_nativeExecute
    (JNIEnv *env, jobject this_object, jobject tc, jclass parenttc, jobject ntc, jclass parentntc)
{
    jmethodID mid, nmid;
    char *sig = "(BCSIJLjava/lang/Byte;Ljava/lang/Character;Ljava/lang/Short;"
        "Ljava/lang/Integer;Ljava/lang/Long;"
        "Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;"
        "Ljava/lang/String;)J";
    jobject ob, oc, os, oi, oj;
    jstring sb, ss, si, sj;
    jclass strc, bc, cc, sc, ic, jc;
    jmethodID binit, cinit, sinit, iinit, jinit;
    jmethodID istrc, jstrc;
    jlong res, resA, resV, nres, nresA, nresV;
    jvalue arargs[14];
    jlong result = RES;
    jlong d1 = RES1, d2 = RES2, d3 = RES3;

    mid = (*env)->GetMethodID(env, parenttc, "method", sig);
    nmid = (*env)->GetMethodID(env, parentntc, "method", sig);

    if (NULL == mid || NULL == nmid)
        return JNI_FALSE;

    bc = (*env)->FindClass(env, "java/lang/Byte");
    cc = (*env)->FindClass(env, "java/lang/Character");
    sc = (*env)->FindClass(env, "java/lang/Short");
    ic = (*env)->FindClass(env, "java/lang/Integer");
    jc = (*env)->FindClass(env, "java/lang/Long");

    if (NULL == bc || NULL == cc || NULL == sc || NULL == ic || NULL == jc)
        return JNI_FALSE;

    binit = (*env)->GetMethodID(env, bc, "<init>", "(B)V");
    cinit = (*env)->GetMethodID(env, cc, "<init>", "(C)V");
    sinit = (*env)->GetMethodID(env, sc, "<init>", "(S)V");
    iinit = (*env)->GetMethodID(env, ic, "<init>", "(I)V");
    jinit = (*env)->GetMethodID(env, jc, "<init>", "(J)V");

    if (NULL == binit || NULL == cinit || NULL == sinit || NULL == iinit ||
        NULL == jinit)
        return JNI_FALSE;

    ob = (*env)->NewObject(env, bc, binit, ARGB2);
    oc = (*env)->NewObject(env, cc, cinit, ARGC2);
    os = (*env)->NewObject(env, sc, sinit, ARGS2);
    oi = (*env)->NewObject(env, ic, iinit, ARGI2);
    oj = (*env)->NewObject(env, jc, jinit, ARGJ2);

    strc = (*env)->FindClass(env, "java/lang/String");
    istrc = (*env)->GetStaticMethodID(env, strc, "valueOf", "(I)Ljava/lang/String;");
    jstrc = (*env)->GetStaticMethodID(env, strc, "valueOf", "(J)Ljava/lang/String;");

    sb = (*env)->CallStaticObjectMethod(env, strc, istrc, ARGB3);
    ss = (*env)->CallStaticObjectMethod(env, strc, istrc, ARGS3);
    si = (*env)->CallStaticObjectMethod(env, strc, istrc, ARGI3);
    sj = (*env)->CallStaticObjectMethod(env, strc, jstrc, ARGJ3);

    arargs[0].b = ARGB1;
    arargs[1].c = ARGC1;
    arargs[2].s = ARGS1;
    arargs[3].i = ARGI1;
    arargs[4].j = ARGJ1;
    arargs[5].l = ob;
    arargs[6].l = oc;
    arargs[7].l = os;
    arargs[8].l = oi;
    arargs[9].l = oj;
    arargs[10].l = sb;
    arargs[11].l = ss;
    arargs[12].l = si;
    arargs[13].l = sj;

    res = (*env)->CallLongMethod(env, tc, mid, ARGB1, ARGC1, ARGS1, ARGI1,
        ARGJ1, ob, oc, os, oi, oj, sb, ss, si, sj);
    resA = (*env)->CallLongMethodA(env, tc, mid, arargs);
    resV = callNI(env, tc, mid, ARGB1, ARGC1, ARGS1, ARGI1,
        ARGJ1, ob, oc, os, oi, oj, sb, ss, si, sj);

    nres = (*env)->CallLongMethod(env, ntc, nmid, ARGB1, ARGC1, ARGS1, ARGI1,
        ARGJ1, ob, oc, os, oi, oj, sb, ss, si, sj);
    nresA = (*env)->CallLongMethodA(env, ntc, nmid, arargs);
    nresV = callNI(env, ntc, nmid, ARGB1, ARGC1, ARGS1, ARGI1,
        ARGJ1, ob, oc, os, oi, oj, sb, ss, si, sj);

    if (res != result)
        return JNI_FALSE;

    if (resA != result)
        return JNI_FALSE;

    if (resV != result)
        return JNI_FALSE;

    if (nres != result)
        return JNI_FALSE;

    if (nresA != result)
        return JNI_FALSE;

    if (nresV != result)
        return JNI_FALSE;

    return JNI_TRUE;
}
コード例 #2
0
/*
 * Method: org.apache.harmony.vts.test.vm.jni.static_methods.CallStaticLongMethodVTest.nativeExecute(Lorg/apache/harmony/vts/test/vm/jni/static_methods/TestClass;Lorg/apache/harmony/vts/test/vm/jni/static_methods/NativeTestClass;)Z
 */
JNIEXPORT jboolean JNICALL
Java_org_apache_harmony_vts_test_vm_jni_static_1methods_CallStaticLongMethodVTest_nativeExecute
    (JNIEnv *env, jobject this_object, jobject tc, jobject ntc)
{
    jclass jc, class1, class2;
    char *sig1 = "(J)J";
    char *sig2 = "(JJ)J";
    char *sig3 = "([J)J";
    char *sig4 = "([J[J)J";
    char *sig5 = "(Ljava/lang/Long;)J";
    char *sig6 = "(Ljava/lang/Long;Ljava/lang/Long;)J";
    jobject jo5, jo62;
    jlongArray ar3, ar42;
    jlong *elements3, *elements42;
    jlong result1, result2, result3, result4, result5, result6;
    jlong nresult1, nresult2, nresult3, nresult4, nresult5, nresult6;

    jmethodID m1, m2, m3, m4, m5, m6;
    jmethodID nm1, nm2, nm3, nm4, nm5, nm6;
    jmethodID long_init;

    ar3 = (*env)->NewLongArray(env, ARG3_LENGTH);
    ar42 = (*env)->NewLongArray(env, ARG42_LENGTH);

    if (NULL == ar3 || NULL == ar42)
        return JNI_FALSE;

    elements3 = (*env)->GetLongArrayElements(env, ar3, NULL);
    elements42 = (*env)->GetLongArrayElements(env, ar42, NULL);

    if (NULL == elements3 || NULL == elements42)
        return JNI_FALSE;

    elements3[0] = ARG31;
    elements3[1] = ARG32;

    elements42[0] = ARG421;
    elements42[1] = ARG422;
    elements42[2] = ARG423;

    (*env)->ReleaseLongArrayElements(env, ar3, elements3, 0);
    (*env)->ReleaseLongArrayElements(env, ar42, elements42, 0);

    jc = (*env)->FindClass(env, "java/lang/Long");
    if (NULL == jc)
        return JNI_FALSE;
    long_init = (*env)->GetMethodID(env, jc, "<init>", "(J)V");
    if (NULL == long_init)
        return JNI_FALSE;
    jo5 = (*env)->NewObject(env, jc, long_init, ARG5);
    jo62 = (*env)->NewObject(env, jc, long_init, ARG62);
    if (NULL == jo5 || NULL == jo62)
        return JNI_FALSE;

    class1 = (*env)->GetObjectClass(env, tc);
    class2 = (*env)->GetObjectClass(env, ntc);

    m1 = (*env)->GetStaticMethodID(env, class1, "method", sig1);
    m2 = (*env)->GetStaticMethodID(env, class1, "method", sig2);
    m3 = (*env)->GetStaticMethodID(env, class1, "method", sig3);
    m4 = (*env)->GetStaticMethodID(env, class1, "method", sig4);
    m5 = (*env)->GetStaticMethodID(env, class1, "method", sig5);
    m6 = (*env)->GetStaticMethodID(env, class1, "method", sig6);

    if (NULL == m1 || NULL == m2 || NULL == m3 ||
        NULL == m4 || NULL == m5 || NULL == m6)
        return JNI_FALSE;

    nm1 = (*env)->GetStaticMethodID(env, class2, "method", sig1);
    nm2 = (*env)->GetStaticMethodID(env, class2, "method", sig2);
    nm3 = (*env)->GetStaticMethodID(env, class2, "method", sig3);
    nm4 = (*env)->GetStaticMethodID(env, class2, "method", sig4);
    nm5 = (*env)->GetStaticMethodID(env, class2, "method", sig5);
    nm6 = (*env)->GetStaticMethodID(env, class2, "method", sig6);

    if (NULL == nm1 || NULL == nm2 || NULL == nm3 ||
        NULL == nm4 || NULL == nm5 || NULL == nm6)
        return JNI_FALSE;

    result1 = callNI(env, class1, m1, ARG1);
    result2 = callNI(env, class1, m2, ARG1, ARG22);
    result3 = callNI(env, class1, m3, ar3);
    result4 = callNI(env, class1, m4, ar3, ar42);
    result5 = callNI(env, class1, m5, jo5);
    result6 = callNI(env, class1, m6, jo5, jo62);

    nresult1 = callNI(env, class2, nm1, ARG1);
    nresult2 = callNI(env, class2, nm2, ARG1, ARG22);
    nresult3 = callNI(env, class2, nm3, ar3);
    nresult4 = callNI(env, class2, nm4, ar3, ar42);
    nresult5 = callNI(env, class2, nm5, jo5);
    nresult6 = callNI(env, class2, nm6, jo5, jo62);

    if (result1 != RES1 || nresult1 != RES1 ||
        result2 != RES2 || nresult2 != RES2 ||
        result3 != RES3 || nresult3 != RES3 ||
        result4 != RES4 || nresult4 != RES4 ||
        result5 != RES5 || nresult5 != RES5 ||
        result6 != RES6 || nresult6 != RES6)
        return JNI_FALSE;
    else
        return JNI_TRUE;
}
コード例 #3
0
/*
 * Method: org.apache.harmony.vts.test.vm.jni.object_methods.CallDoubleMethodVTest.nativeExecute(Lorg/apache/harmony/vts/test/vm/jni/object_methods/TestClass;Lorg/apache/harmony/vts/test/vm/jni/object_methods/NativeTestClass;)Z
 */
JNIEXPORT jboolean JNICALL
Java_org_apache_harmony_vts_test_vm_jni_object_1methods_CallDoubleMethodVTest_nativeExecute
    (JNIEnv *env, jobject this_object, jobject tc, jobject ntc)
{
    jclass dc, class1, class2;
    char *sig1 = "(D)D";
    char *sig2 = "(DD)D";
    char *sig3 = "([D)D";
    char *sig4 = "([D[D)D";
    char *sig5 = "(Ljava/lang/Double;)D";
    char *sig6 = "(Ljava/lang/Double;Ljava/lang/Double;)D";
    jobject do5, do62;
    jdoubleArray ar3, ar42;
    jdouble *elements3, *elements42;
    jdouble result1, result2, result3, result4, result5, result6;
    jdouble nresult1, nresult2, nresult3, nresult4, nresult5, nresult6;

    jmethodID m1, m2, m3, m4, m5, m6;
    jmethodID nm1, nm2, nm3, nm4, nm5, nm6;
    jmethodID double_init;

    ar3 = (*env)->NewDoubleArray(env, ARG3_LENGTH);
    ar42 = (*env)->NewDoubleArray(env, ARG42_LENGTH);

    if (NULL == ar3 || NULL == ar42)
        return JNI_FALSE;

    elements3 = (*env)->GetDoubleArrayElements(env, ar3, NULL);
    elements42 = (*env)->GetDoubleArrayElements(env, ar42, NULL);

    if (NULL == elements3 || NULL == elements42)
        return JNI_FALSE;

    elements3[0] = ARG31;
    elements3[1] = ARG32;

    elements42[0] = ARG421;
    elements42[1] = ARG422;
    elements42[2] = ARG423;

    (*env)->ReleaseDoubleArrayElements(env, ar3, elements3, 0);
    (*env)->ReleaseDoubleArrayElements(env, ar42, elements42, 0);

    dc = (*env)->FindClass(env, "java/lang/Double");
    if (NULL == dc)
        return JNI_FALSE;
    double_init = (*env)->GetMethodID(env, dc, "<init>", "(D)V");
    if (NULL == double_init)
        return JNI_FALSE;
    do5 = (*env)->NewObject(env, dc, double_init, ARG5);
    do62 = (*env)->NewObject(env, dc, double_init, ARG62);
    if (NULL == do5 || NULL == do62)
        return JNI_FALSE;

    class1 = (*env)->GetObjectClass(env, tc);
    class2 = (*env)->GetObjectClass(env, ntc);

    m1 = (*env)->GetMethodID(env, class1, "method", sig1);
    m2 = (*env)->GetMethodID(env, class1, "method", sig2);
    m3 = (*env)->GetMethodID(env, class1, "method", sig3);
    m4 = (*env)->GetMethodID(env, class1, "method", sig4);
    m5 = (*env)->GetMethodID(env, class1, "method", sig5);
    m6 = (*env)->GetMethodID(env, class1, "method", sig6);

    if (NULL == m1 || NULL == m2 || NULL == m3 ||
        NULL == m4 || NULL == m5 || NULL == m6)
        return JNI_FALSE;

    nm1 = (*env)->GetMethodID(env, class2, "method", sig1);
    nm2 = (*env)->GetMethodID(env, class2, "method", sig2);
    nm3 = (*env)->GetMethodID(env, class2, "method", sig3);
    nm4 = (*env)->GetMethodID(env, class2, "method", sig4);
    nm5 = (*env)->GetMethodID(env, class2, "method", sig5);
    nm6 = (*env)->GetMethodID(env, class2, "method", sig6);

    if (NULL == nm1 || NULL == nm2 || NULL == nm3 ||
        NULL == nm4 || NULL == nm5 || NULL == nm6)
        return JNI_FALSE;

    result1 = callNI(env, tc, m1, ARG1);
    result2 = callNI(env, tc, m2, ARG1, ARG22);
    result3 = callNI(env, tc, m3, ar3);
    result4 = callNI(env, tc, m4, ar3, ar42);
    result5 = callNI(env, tc, m5, do5);
    result6 = callNI(env, tc, m6, do5, do62);

    nresult1 = callNI(env, ntc, nm1, ARG1);
    nresult2 = callNI(env, ntc, nm2, ARG1, ARG22);
    nresult3 = callNI(env, ntc, nm3, ar3);
    nresult4 = callNI(env, ntc, nm4, ar3, ar42);
    nresult5 = callNI(env, ntc, nm5, do5);
    nresult6 = callNI(env, ntc, nm6, do5, do62);

    if (result1 - RES1 >0  || nresult1 - RES1 >0  ||
        result2 - RES2 >0  || nresult2 - RES2 >0  ||
        result3 - RES3 >0  || nresult3 - RES3 >0  ||
        result4 - RES4 >0  || nresult4 - RES4 >0  ||
        result5 - RES5 >0  || nresult5 - RES5 >0  ||
        result6 - RES6 >0  || nresult6 - RES6 >0 )
        return JNI_FALSE;
    else
        return JNI_TRUE;
}
/*
 * Method: org.apache.harmony.vts.test.vm.jni.object_methods.CallNonvirtualBooleanMethodVTest.nativeExecute(Lorg/apache/harmony/vts/test/vm/jni/object_methods/ChildTestClass;Ljava/lang/Class;Lorg/apache/harmony/vts/test/vm/jni/object_methods/ChildNativeTestClass;Ljava/lang/Class;)Z
 */
JNIEXPORT jboolean JNICALL
Java_org_apache_harmony_vts_test_vm_jni_object_1methods_CallNonvirtualBooleanMethodVTest_nativeExecute
    (JNIEnv *env, jobject this_object, jobject tc, jclass parenttc, jobject ntc, jclass parentntc)
{
    jclass bc;
    char *sig1 = "(Z)Z";
    char *sig2 = "(ZZ)Z";
    char *sig3 = "([Z)Z";
    char *sig4 = "([Z[Z)Z";
    char *sig5 = "(Ljava/lang/Boolean;)Z";
    char *sig6 = "(Ljava/lang/Boolean;Ljava/lang/Boolean;)Z";
    jobject bo5, bo62;
    jbooleanArray ar3, ar42;
    jboolean *elements3, *elements42;
    jboolean result1, result2, result3, result4, result5, result6;
    jboolean nresult1, nresult2, nresult3, nresult4, nresult5, nresult6;

    jmethodID m1, m2, m3, m4, m5, m6;
    jmethodID nm1, nm2, nm3, nm4, nm5, nm6;
    jmethodID boolean_init;

    ar3 = (*env)->NewBooleanArray(env, ARG3_LENGTH);
    ar42 = (*env)->NewBooleanArray(env, ARG42_LENGTH);

    if (NULL == ar3 || NULL == ar42)
        return JNI_FALSE;

    elements3 = (*env)->GetBooleanArrayElements(env, ar3, NULL);
    elements42 = (*env)->GetBooleanArrayElements(env, ar42, NULL);

    if (NULL == elements3 || NULL == elements42)
        return JNI_FALSE;

    elements3[0] = ARG31;
    elements3[1] = ARG32;

    elements42[0] = ARG421;
    elements42[1] = ARG422;
    elements42[2] = ARG423;

    (*env)->ReleaseBooleanArrayElements(env, ar3, elements3, 0);
    (*env)->ReleaseBooleanArrayElements(env, ar42, elements42, 0);

    bc = (*env)->FindClass(env, "java/lang/Boolean");
    if (NULL == bc)
        return JNI_FALSE;
    boolean_init = (*env)->GetMethodID(env, bc, "<init>", "(Z)V");
    if (NULL == boolean_init)
        return JNI_FALSE;
    bo5 = (*env)->NewObject(env, bc, boolean_init, ARG5);
    bo62 = (*env)->NewObject(env, bc, boolean_init, ARG62);
    if (NULL == bo5 || NULL == bo62)
        return JNI_FALSE;

    m1 = (*env)->GetMethodID(env, parenttc, "method", sig1);
    m2 = (*env)->GetMethodID(env, parenttc, "method", sig2);
    m3 = (*env)->GetMethodID(env, parenttc, "method", sig3);
    m4 = (*env)->GetMethodID(env, parenttc, "method", sig4);
    m5 = (*env)->GetMethodID(env, parenttc, "method", sig5);
    m6 = (*env)->GetMethodID(env, parenttc, "method", sig6);

    if (NULL == m1 || NULL == m2 || NULL == m3 ||
        NULL == m4 || NULL == m5 || NULL == m6)
        return JNI_FALSE;

    nm1 = (*env)->GetMethodID(env, parentntc, "method", sig1);
    nm2 = (*env)->GetMethodID(env, parentntc, "method", sig2);
    nm3 = (*env)->GetMethodID(env, parentntc, "method", sig3);
    nm4 = (*env)->GetMethodID(env, parentntc, "method", sig4);
    nm5 = (*env)->GetMethodID(env, parentntc, "method", sig5);
    nm6 = (*env)->GetMethodID(env, parentntc, "method", sig6);

    if (NULL == nm1 || NULL == nm2 || NULL == nm3 ||
        NULL == nm4 || NULL == nm5 || NULL == nm6)
        return JNI_FALSE;

    result1 = callNI(env, tc, parenttc, m1, ARG1);
    result2 = callNI(env, tc, parenttc, m2, ARG1, ARG22);
    result3 = callNI(env, tc, parenttc, m3, ar3);
    result4 = callNI(env, tc, parenttc, m4, ar3, ar42);
    result5 = callNI(env, tc, parenttc, m5, bo5);
    result6 = callNI(env, tc, parenttc, m6, bo5, bo62);

    nresult1 = callNI(env, ntc, parentntc, nm1, ARG1);
    nresult2 = callNI(env, ntc, parentntc, nm2, ARG1, ARG22);
    nresult3 = callNI(env, ntc, parentntc, nm3, ar3);
    nresult4 = callNI(env, ntc, parentntc, nm4, ar3, ar42);
    nresult5 = callNI(env, ntc, parentntc, nm5, bo5);
    nresult6 = callNI(env, ntc, parentntc, nm6, bo5, bo62);

    if (result1 != RES1 || nresult1 != RES1 ||
        result2 != RES2 || nresult2 != RES2 ||
        result3 != RES3 || nresult3 != RES3 ||
        result4 != RES4 || nresult4 != RES4 ||
        result5 != RES5 || nresult5 != RES5 ||
        result6 != RES6 || nresult6 != RES6)
        return JNI_FALSE;
    else
        return JNI_TRUE;
}
コード例 #5
0
/*
 * Method: org.apache.harmony.vts.test.vm.jni.object_methods.CallCharMethodVTest.nativeExecute(Lorg/apache/harmony/vts/test/vm/jni/object_methods/TestClass;Lorg/apache/harmony/vts/test/vm/jni/object_methods/NativeTestClass;)Z
 */
JNIEXPORT jboolean JNICALL
Java_org_apache_harmony_vts_test_vm_jni_object_1methods_CallCharMethodVTest_nativeExecute
    (JNIEnv *env, jobject this_object, jobject tc, jobject ntc)
{
    jclass cc, class1, class2;
    char *sig1 = "(C)C";
    char *sig2 = "(CC)C";
    char *sig3 = "([C)C";
    char *sig4 = "([C[C)C";
    char *sig5 = "(Ljava/lang/Character;)C";
    char *sig6 = "(Ljava/lang/Character;Ljava/lang/Character;)C";
    jobject co5, co62;
    jcharArray ar3, ar42;
    jchar *elements3, *elements42;
    jchar result1, result2, result3, result4, result5, result6;
    jchar nresult1, nresult2, nresult3, nresult4, nresult5, nresult6;

    jmethodID m1, m2, m3, m4, m5, m6;
    jmethodID nm1, nm2, nm3, nm4, nm5, nm6;
    jmethodID char_init;

    ar3 = (*env)->NewCharArray(env, ARG3_LENGTH);
    ar42 = (*env)->NewCharArray(env, ARG42_LENGTH);

    if (NULL == ar3 || NULL == ar42)
        return JNI_FALSE;

    elements3 = (*env)->GetCharArrayElements(env, ar3, NULL);
    elements42 = (*env)->GetCharArrayElements(env, ar42, NULL);

    if (NULL == elements3 || NULL == elements42)
        return JNI_FALSE;

    elements3[0] = ARG31;
    elements3[1] = ARG32;

    elements42[0] = ARG421;
    elements42[1] = ARG422;
    elements42[2] = ARG423;

    (*env)->ReleaseCharArrayElements(env, ar3, elements3, 0);
    (*env)->ReleaseCharArrayElements(env, ar42, elements42, 0);

    cc = (*env)->FindClass(env, "java/lang/Character");
    if (NULL == cc)
        return JNI_FALSE;
    char_init = (*env)->GetMethodID(env, cc, "<init>", "(C)V");
    if (NULL == char_init)
        return JNI_FALSE;
    co5 = (*env)->NewObject(env, cc, char_init, ARG5);
    co62 = (*env)->NewObject(env, cc, char_init, ARG62);
    if (NULL == co5 || NULL == co62)
        return JNI_FALSE;

    class1 = (*env)->GetObjectClass(env, tc);
    class2 = (*env)->GetObjectClass(env, ntc);

    m1 = (*env)->GetMethodID(env, class1, "method", sig1);
    m2 = (*env)->GetMethodID(env, class1, "method", sig2);
    m3 = (*env)->GetMethodID(env, class1, "method", sig3);
    m4 = (*env)->GetMethodID(env, class1, "method", sig4);
    m5 = (*env)->GetMethodID(env, class1, "method", sig5);
    m6 = (*env)->GetMethodID(env, class1, "method", sig6);

    if (NULL == m1 || NULL == m2 || NULL == m3 ||
        NULL == m4 || NULL == m5 || NULL == m6)
        return JNI_FALSE;

    nm1 = (*env)->GetMethodID(env, class2, "method", sig1);
    nm2 = (*env)->GetMethodID(env, class2, "method", sig2);
    nm3 = (*env)->GetMethodID(env, class2, "method", sig3);
    nm4 = (*env)->GetMethodID(env, class2, "method", sig4);
    nm5 = (*env)->GetMethodID(env, class2, "method", sig5);
    nm6 = (*env)->GetMethodID(env, class2, "method", sig6);

    if (NULL == nm1 || NULL == nm2 || NULL == nm3 ||
        NULL == nm4 || NULL == nm5 || NULL == nm6)
        return JNI_FALSE;

    result1 = callNI(env, tc, m1, ARG1);
    result2 = callNI(env, tc, m2, ARG1, ARG22);
    result3 = callNI(env, tc, m3, ar3);
    result4 = callNI(env, tc, m4, ar3, ar42);
    result5 = callNI(env, tc, m5, co5);
    result6 = callNI(env, tc, m6, co5, co62);

    nresult1 = callNI(env, ntc, nm1, ARG1);
    nresult2 = callNI(env, ntc, nm2, ARG1, ARG22);
    nresult3 = callNI(env, ntc, nm3, ar3);
    nresult4 = callNI(env, ntc, nm4, ar3, ar42);
    nresult5 = callNI(env, ntc, nm5, co5);
    nresult6 = callNI(env, ntc, nm6, co5, co62);

    if (result1 != RES1 || nresult1 != RES1 ||
        result2 != RES2 || nresult2 != RES2 ||
        result3 != RES3 || nresult3 != RES3 ||
        result4 != RES4 || nresult4 != RES4 ||
        result5 != RES5 || nresult5 != RES5 ||
        result6 != RES6 || nresult6 != RES6)
        return JNI_FALSE;
    else
        return JNI_TRUE;
}