Lines Matching refs:env_
45 vm_->AttachCurrentThread(&env_, nullptr); in SetUp()
47 ScopedLocalRef<jclass> aioobe(env_, in SetUp()
48 env_->FindClass("java/lang/ArrayIndexOutOfBoundsException")); in SetUp()
50 aioobe_ = reinterpret_cast<jclass>(env_->NewGlobalRef(aioobe.get())); in SetUp()
52 ScopedLocalRef<jclass> ase(env_, env_->FindClass("java/lang/ArrayStoreException")); in SetUp()
54 ase_ = reinterpret_cast<jclass>(env_->NewGlobalRef(ase.get())); in SetUp()
56 ScopedLocalRef<jclass> sioobe(env_, in SetUp()
57 env_->FindClass("java/lang/StringIndexOutOfBoundsException")); in SetUp()
59 sioobe_ = reinterpret_cast<jclass>(env_->NewGlobalRef(sioobe.get())); in SetUp()
63 ScopedObjectAccess soa(env_); in ExpectException()
64 EXPECT_TRUE(env_->ExceptionCheck()) in ExpectException()
66 jthrowable exception = env_->ExceptionOccurred(); in ExpectException()
68 env_->ExceptionClear(); in ExpectException()
69 EXPECT_TRUE(env_->IsInstanceOf(exception, exception_class)); in ExpectException()
74 env_->DeleteGlobalRef(aioobe_); in CleanUpJniEnv()
78 env_->DeleteGlobalRef(ase_); in CleanUpJniEnv()
82 env_->DeleteGlobalRef(sioobe_); in CleanUpJniEnv()
93 ScopedObjectAccess soa(env_); in GetPrimitiveClass()
100 EXPECT_NE(env_->FindClass(name), nullptr) << name; in ExpectClassFound()
101 EXPECT_FALSE(env_->ExceptionCheck()) << name; in ExpectClassFound()
106 EXPECT_EQ(env_->FindClass(name), nullptr) << name; in ExpectClassNotFound()
108 EXPECT_TRUE(env_->ExceptionCheck()) << name; in ExpectClassNotFound()
109 env_->ExceptionClear(); in ExpectClassNotFound()
120 env_->FindClass(nullptr); in FindClassTest()
138 EXPECT_EQ(env_->FindClass("java.lang.String"), nullptr); in FindClassTest()
139 EXPECT_FALSE(env_->ExceptionCheck()); in FindClassTest()
142 EXPECT_EQ(env_->FindClass("[Ljava.lang.String;"), nullptr); in FindClassTest()
143 EXPECT_FALSE(env_->ExceptionCheck()); in FindClassTest()
176 jclass c = env_->FindClass("java/lang/String"); in GetFieldIdBadArgumentTest()
179 jfieldID fid = env_->GetFieldID(nullptr, "count", "I"); in GetFieldIdBadArgumentTest()
183 fid = env_->GetFieldID(c, nullptr, "I"); in GetFieldIdBadArgumentTest()
187 fid = env_->GetFieldID(c, "count", nullptr); in GetFieldIdBadArgumentTest()
199 jclass c = env_->FindClass("java/lang/String"); in GetStaticFieldIdBadArgumentTest()
202 …jfieldID fid = env_->GetStaticFieldID(nullptr, "CASE_INSENSITIVE_ORDER", "Ljava/util/Comparator;"); in GetStaticFieldIdBadArgumentTest()
206 fid = env_->GetStaticFieldID(c, nullptr, "Ljava/util/Comparator;"); in GetStaticFieldIdBadArgumentTest()
210 fid = env_->GetStaticFieldID(c, "CASE_INSENSITIVE_ORDER", nullptr); in GetStaticFieldIdBadArgumentTest()
222 jmethodID method = env_->GetMethodID(nullptr, "<init>", "(Ljava/lang/String;)V"); in GetMethodIdBadArgumentTest()
226 jclass jlnsme = env_->FindClass("java/lang/NoSuchMethodError"); in GetMethodIdBadArgumentTest()
228 method = env_->GetMethodID(jlnsme, nullptr, "(Ljava/lang/String;)V"); in GetMethodIdBadArgumentTest()
232 method = env_->GetMethodID(jlnsme, "<init>", nullptr); in GetMethodIdBadArgumentTest()
244 jmethodID method = env_->GetStaticMethodID(nullptr, "valueOf", "(I)Ljava/lang/String;"); in GetStaticMethodIdBadArgumentTest()
248 jclass jlstring = env_->FindClass("java/lang/String"); in GetStaticMethodIdBadArgumentTest()
249 method = env_->GetStaticMethodID(jlstring, nullptr, "(I)Ljava/lang/String;"); in GetStaticMethodIdBadArgumentTest()
253 method = env_->GetStaticMethodID(jlstring, "valueOf", nullptr); in GetStaticMethodIdBadArgumentTest()
265 jclass c = env_->FindClass("java/lang/String"); in GetFromReflectedField_ToReflectedFieldBadArgumentTest()
267 jfieldID fid = env_->GetFieldID(c, "count", "I"); in GetFromReflectedField_ToReflectedFieldBadArgumentTest()
271 jobject field = env_->ToReflectedField(nullptr, fid, JNI_FALSE); in GetFromReflectedField_ToReflectedFieldBadArgumentTest()
279 field = env_->ToReflectedField(c, nullptr, JNI_FALSE); in GetFromReflectedField_ToReflectedFieldBadArgumentTest()
284 fid = env_->FromReflectedField(nullptr); in GetFromReflectedField_ToReflectedFieldBadArgumentTest()
296 jclass c = env_->FindClass("java/lang/String"); in GetFromReflectedMethod_ToReflectedMethodBadArgumentTest()
298 jmethodID mid = env_->GetMethodID(c, "<init>", "()V"); in GetFromReflectedMethod_ToReflectedMethodBadArgumentTest()
302 jobject method = env_->ToReflectedMethod(nullptr, mid, JNI_FALSE); in GetFromReflectedMethod_ToReflectedMethodBadArgumentTest()
310 method = env_->ToReflectedMethod(c, nullptr, JNI_FALSE); in GetFromReflectedMethod_ToReflectedMethodBadArgumentTest()
314 mid = env_->FromReflectedMethod(method); in GetFromReflectedMethod_ToReflectedMethodBadArgumentTest()
327 EXPECT_EQ(env_->RegisterNatives(nullptr, methods, 0), JNI_ERR); in RegisterAndUnregisterNativesBadArguments()
333 jclass jlobject = env_->FindClass("java/lang/Object"); in RegisterAndUnregisterNativesBadArguments()
334 EXPECT_EQ(env_->RegisterNatives(jlobject, nullptr, 1), JNI_ERR); in RegisterAndUnregisterNativesBadArguments()
338 EXPECT_EQ(env_->UnregisterNatives(nullptr), JNI_ERR); in RegisterAndUnregisterNativesBadArguments()
350 jbooleanArray array = env_->NewBooleanArray(10); in GetPrimitiveArrayElementsOfWrongType()
352 EXPECT_EQ(env_->GetByteArrayElements(reinterpret_cast<jbyteArray>(array), &is_copy), nullptr); in GetPrimitiveArrayElementsOfWrongType()
356 EXPECT_EQ(env_->GetShortArrayElements(reinterpret_cast<jshortArray>(array), &is_copy), nullptr); in GetPrimitiveArrayElementsOfWrongType()
360 EXPECT_EQ(env_->GetCharArrayElements(reinterpret_cast<jcharArray>(array), &is_copy), nullptr); in GetPrimitiveArrayElementsOfWrongType()
364 EXPECT_EQ(env_->GetIntArrayElements(reinterpret_cast<jintArray>(array), &is_copy), nullptr); in GetPrimitiveArrayElementsOfWrongType()
368 EXPECT_EQ(env_->GetLongArrayElements(reinterpret_cast<jlongArray>(array), &is_copy), nullptr); in GetPrimitiveArrayElementsOfWrongType()
372 EXPECT_EQ(env_->GetFloatArrayElements(reinterpret_cast<jfloatArray>(array), &is_copy), nullptr); in GetPrimitiveArrayElementsOfWrongType()
376 … EXPECT_EQ(env_->GetDoubleArrayElements(reinterpret_cast<jdoubleArray>(array), &is_copy), nullptr); in GetPrimitiveArrayElementsOfWrongType()
380 jbyteArray array2 = env_->NewByteArray(10); in GetPrimitiveArrayElementsOfWrongType()
381 EXPECT_EQ(env_->GetBooleanArrayElements(reinterpret_cast<jbooleanArray>(array2), &is_copy), in GetPrimitiveArrayElementsOfWrongType()
386 jobject object = env_->NewStringUTF("Test String"); in GetPrimitiveArrayElementsOfWrongType()
387 EXPECT_EQ(env_->GetBooleanArrayElements(reinterpret_cast<jbooleanArray>(object), &is_copy), in GetPrimitiveArrayElementsOfWrongType()
400 jbooleanArray array = env_->NewBooleanArray(10); in ReleasePrimitiveArrayElementsOfWrongType()
403 jboolean* elements = env_->GetBooleanArrayElements(array, &is_copy); in ReleasePrimitiveArrayElementsOfWrongType()
405 env_->ReleaseByteArrayElements(reinterpret_cast<jbyteArray>(array), in ReleasePrimitiveArrayElementsOfWrongType()
410 env_->ReleaseShortArrayElements(reinterpret_cast<jshortArray>(array), in ReleasePrimitiveArrayElementsOfWrongType()
415 env_->ReleaseCharArrayElements(reinterpret_cast<jcharArray>(array), in ReleasePrimitiveArrayElementsOfWrongType()
420 env_->ReleaseIntArrayElements(reinterpret_cast<jintArray>(array), in ReleasePrimitiveArrayElementsOfWrongType()
425 env_->ReleaseLongArrayElements(reinterpret_cast<jlongArray>(array), in ReleasePrimitiveArrayElementsOfWrongType()
430 env_->ReleaseFloatArrayElements(reinterpret_cast<jfloatArray>(array), in ReleasePrimitiveArrayElementsOfWrongType()
435 env_->ReleaseDoubleArrayElements(reinterpret_cast<jdoubleArray>(array), in ReleasePrimitiveArrayElementsOfWrongType()
442 env_->ReleaseBooleanArrayElements(array, elements, 0); in ReleasePrimitiveArrayElementsOfWrongType()
445 jbyteArray array = env_->NewByteArray(10); in ReleasePrimitiveArrayElementsOfWrongType()
447 jbyte* elements = env_->GetByteArrayElements(array, &is_copy); in ReleasePrimitiveArrayElementsOfWrongType()
449 env_->ReleaseBooleanArrayElements(reinterpret_cast<jbooleanArray>(array), in ReleasePrimitiveArrayElementsOfWrongType()
454 jobject object = env_->NewStringUTF("Test String"); in ReleasePrimitiveArrayElementsOfWrongType()
455 env_->ReleaseBooleanArrayElements(reinterpret_cast<jbooleanArray>(object), in ReleasePrimitiveArrayElementsOfWrongType()
463 env_->ReleaseByteArrayElements(array, elements, 0); in ReleasePrimitiveArrayElementsOfWrongType()
472 jobject object = env_->NewStringUTF("Test String"); in GetReleasePrimitiveArrayCriticalOfWrongType()
474 void* elements = env_->GetPrimitiveArrayCritical(reinterpret_cast<jarray>(object), &is_copy); in GetReleasePrimitiveArrayCriticalOfWrongType()
477 env_->ReleasePrimitiveArrayCritical(reinterpret_cast<jarray>(object), elements, 0); in GetReleasePrimitiveArrayCriticalOfWrongType()
488 jbooleanArray array = env_->NewBooleanArray(kLength); in GetPrimitiveArrayRegionElementsOfWrongType()
491 env_->GetByteArrayRegion(reinterpret_cast<jbyteArray>(array), 0, kLength, in GetPrimitiveArrayRegionElementsOfWrongType()
496 env_->GetShortArrayRegion(reinterpret_cast<jshortArray>(array), 0, kLength, in GetPrimitiveArrayRegionElementsOfWrongType()
501 env_->GetCharArrayRegion(reinterpret_cast<jcharArray>(array), 0, kLength, in GetPrimitiveArrayRegionElementsOfWrongType()
506 env_->GetIntArrayRegion(reinterpret_cast<jintArray>(array), 0, kLength, in GetPrimitiveArrayRegionElementsOfWrongType()
511 env_->GetLongArrayRegion(reinterpret_cast<jlongArray>(array), 0, kLength, in GetPrimitiveArrayRegionElementsOfWrongType()
516 env_->GetFloatArrayRegion(reinterpret_cast<jfloatArray>(array), 0, kLength, in GetPrimitiveArrayRegionElementsOfWrongType()
521 env_->GetDoubleArrayRegion(reinterpret_cast<jdoubleArray>(array), 0, kLength, in GetPrimitiveArrayRegionElementsOfWrongType()
526 jbyteArray array2 = env_->NewByteArray(10); in GetPrimitiveArrayRegionElementsOfWrongType()
527 env_->GetBooleanArrayRegion(reinterpret_cast<jbooleanArray>(array2), 0, kLength, in GetPrimitiveArrayRegionElementsOfWrongType()
532 jobject object = env_->NewStringUTF("Test String"); in GetPrimitiveArrayRegionElementsOfWrongType()
533 env_->GetBooleanArrayRegion(reinterpret_cast<jbooleanArray>(object), 0, kLength, in GetPrimitiveArrayRegionElementsOfWrongType()
546 jbooleanArray array = env_->NewBooleanArray(kLength); in SetPrimitiveArrayRegionElementsOfWrongType()
549 env_->SetByteArrayRegion(reinterpret_cast<jbyteArray>(array), 0, kLength, in SetPrimitiveArrayRegionElementsOfWrongType()
554 env_->SetShortArrayRegion(reinterpret_cast<jshortArray>(array), 0, kLength, in SetPrimitiveArrayRegionElementsOfWrongType()
559 env_->SetCharArrayRegion(reinterpret_cast<jcharArray>(array), 0, kLength, in SetPrimitiveArrayRegionElementsOfWrongType()
564 env_->SetIntArrayRegion(reinterpret_cast<jintArray>(array), 0, kLength, in SetPrimitiveArrayRegionElementsOfWrongType()
569 env_->SetLongArrayRegion(reinterpret_cast<jlongArray>(array), 0, kLength, in SetPrimitiveArrayRegionElementsOfWrongType()
574 env_->SetFloatArrayRegion(reinterpret_cast<jfloatArray>(array), 0, kLength, in SetPrimitiveArrayRegionElementsOfWrongType()
579 env_->SetDoubleArrayRegion(reinterpret_cast<jdoubleArray>(array), 0, kLength, in SetPrimitiveArrayRegionElementsOfWrongType()
584 jbyteArray array2 = env_->NewByteArray(10); in SetPrimitiveArrayRegionElementsOfWrongType()
585 env_->SetBooleanArrayRegion(reinterpret_cast<jbooleanArray>(array2), 0, kLength, in SetPrimitiveArrayRegionElementsOfWrongType()
590 jobject object = env_->NewStringUTF("Test String"); in SetPrimitiveArrayRegionElementsOfWrongType()
591 env_->SetBooleanArrayRegion(reinterpret_cast<jbooleanArray>(object), 0, kLength, in SetPrimitiveArrayRegionElementsOfWrongType()
603 jclass element_class = env_->FindClass("java/lang/String"); in NewObjectArrayBadArguments()
606 env_->NewObjectArray(-1, element_class, nullptr); in NewObjectArrayBadArguments()
609 env_->NewObjectArray(std::numeric_limits<jint>::min(), element_class, nullptr); in NewObjectArrayBadArguments()
640 env_ = Thread::Current()->GetJniEnv(); in SetUpForTest()
641 jklass_ = env_->FindClass("MyClassNatives"); in SetUpForTest()
645 jmethod_ = env_->GetStaticMethodID(jklass_, method_name, method_sig); in SetUpForTest()
647 jmethod_ = env_->GetMethodID(jklass_, method_name, method_sig); in SetUpForTest()
653 ASSERT_EQ(JNI_OK, env_->RegisterNatives(jklass_, methods, 1)) in SetUpForTest()
656 env_->UnregisterNatives(jklass_); in SetUpForTest()
659 jmethodID constructor = env_->GetMethodID(jklass_, "<init>", "()V"); in SetUpForTest()
660 jobj_ = env_->NewObject(jklass_, constructor); in SetUpForTest()
665 JNIEnv* env_; member in art::JniInternalTest
677 jclass c = env_->FindClass("java/lang/String"); in TEST_F()
679 jobject o = env_->AllocObject(c); in TEST_F()
683 ASSERT_TRUE(env_->IsInstanceOf(o, c)); in TEST_F()
687 ASSERT_EQ(0, env_->GetIntField(o, env_->GetFieldID(c, "count", "I"))); in TEST_F()
691 ASSERT_EQ(JNI_VERSION_1_6, env_->GetVersion()); in TEST_F()
703 jclass jlnsfe = env_->FindClass("java/lang/NoSuchFieldError"); in TEST_F()
705 jclass c = env_->FindClass("java/lang/String"); in TEST_F()
709 jfieldID fid = env_->GetFieldID(c, "count", "J"); in TEST_F()
714 fid = env_->GetFieldID(c, "count", "Lrod/jane/freddy;"); in TEST_F()
719 fid = env_->GetFieldID(c, "Count", "I"); in TEST_F()
724 fid = env_->GetFieldID(c, "count", "I"); in TEST_F()
726 EXPECT_FALSE(env_->ExceptionCheck()); in TEST_F()
729 c = env_->FindClass("java/lang/StringBuilder"); in TEST_F()
730 fid = env_->GetFieldID(c, "count", "I"); in TEST_F()
733 EXPECT_FALSE(env_->ExceptionCheck()); in TEST_F()
736 fid = env_->GetFieldID(c, "CASE_INSENSITIVE_ORDER", "Ljava/util/Comparator;"); in TEST_F()
746 jclass jlnsfe = env_->FindClass("java/lang/NoSuchFieldError"); in TEST_F()
748 jclass c = env_->FindClass("java/lang/String"); in TEST_F()
752 jfieldID fid = env_->GetStaticFieldID(c, "CASE_INSENSITIVE_ORDER", "J"); in TEST_F()
757 fid = env_->GetStaticFieldID(c, "CASE_INSENSITIVE_ORDER", "Lrod/jane/freddy;"); in TEST_F()
762 fid = env_->GetStaticFieldID(c, "cASE_INSENSITIVE_ORDER", "Ljava/util/Comparator;"); in TEST_F()
767 fid = env_->GetStaticFieldID(c, "CASE_INSENSITIVE_ORDER", "Ljava/util/Comparator;"); in TEST_F()
770 EXPECT_FALSE(env_->ExceptionCheck()); in TEST_F()
773 fid = env_->GetStaticFieldID(c, "count", "I"); in TEST_F()
783 jclass jlobject = env_->FindClass("java/lang/Object"); in TEST_F()
784 jclass jlstring = env_->FindClass("java/lang/String"); in TEST_F()
785 jclass jlnsme = env_->FindClass("java/lang/NoSuchMethodError"); in TEST_F()
786 jclass jncrbc = env_->FindClass("java/nio/channels/ReadableByteChannel"); in TEST_F()
789 ASSERT_FALSE(env_->ExceptionCheck()); in TEST_F()
793 jmethodID method = env_->GetMethodID(jlobject, "foo", "()V"); in TEST_F()
798 method = env_->GetMethodID(jlobject, "equals", "(Ljava/lang/Object;)Z"); in TEST_F()
800 EXPECT_FALSE(env_->ExceptionCheck()); in TEST_F()
804 method = env_->GetMethodID(jlstring, "valueOf", "(I)Ljava/lang/String;"); in TEST_F()
809 method = env_->GetMethodID(jlnsme, "<init>", "(Ljava/lang/String;)V"); in TEST_F()
811 EXPECT_FALSE(env_->ExceptionCheck()); in TEST_F()
814 method = env_->GetMethodID(jncrbc, "close", "()V"); in TEST_F()
816 EXPECT_FALSE(env_->ExceptionCheck()); in TEST_F()
824 jclass jlobject = env_->FindClass("java/lang/Object"); in TEST_F()
828 method = env_->GetMethodID(jlobject, "<init>", "()V"); in TEST_F()
830 EXPECT_FALSE(env_->ExceptionCheck()); in TEST_F()
834 env_->CallVoidMethod(nullptr, method); in TEST_F()
845 jclass prim_class = env_->FindClass("java/lang/" #boxed_type); \ in TEST_F()
846 jmethodID method = env_->GetStaticMethodID(prim_class, "valueOf", \ in TEST_F()
849 EXPECT_FALSE(env_->ExceptionCheck()); \ in TEST_F()
851 env_->CallStaticObjectMethod(prim_class, method, bad_value); \ in TEST_F()
872 jclass prim_class = env_->FindClass("java/lang/" #boxed_type); \ in TEST_F()
873 jmethodID method = env_->GetStaticMethodID(prim_class, "valueOf", \ in TEST_F()
876 EXPECT_FALSE(env_->ExceptionCheck()); \ in TEST_F()
880 env_->CallStaticObjectMethodA(prim_class, method, &jval); \ in TEST_F()
885 jclass prim_class = env_->FindClass("java/lang/" #boxed_type); \ in TEST_F()
886 jmethodID method = env_->GetStaticMethodID(prim_class, "valueOf", \ in TEST_F()
889 EXPECT_FALSE(env_->ExceptionCheck()); \ in TEST_F()
892 env_->CallStaticObjectMethodA(prim_class, method, &jval); \ in TEST_F()
906 jclass jlobject = env_->FindClass("java/lang/Object"); in TEST_F()
907 jclass jlnsme = env_->FindClass("java/lang/NoSuchMethodError"); in TEST_F()
910 ASSERT_FALSE(env_->ExceptionCheck()); in TEST_F()
914 jmethodID method = env_->GetStaticMethodID(jlobject, "foo", "()V"); in TEST_F()
920 method = env_->GetStaticMethodID(jlobject, "equals", "(Ljava/lang/Object;)Z"); in TEST_F()
925 jclass jlstring = env_->FindClass("java/lang/String"); in TEST_F()
926 method = env_->GetStaticMethodID(jlstring, "valueOf", "(I)Ljava/lang/String;"); in TEST_F()
928 EXPECT_FALSE(env_->ExceptionCheck()); in TEST_F()
941 jclass jlrField = env_->FindClass("java/lang/reflect/Field"); in TEST_F()
942 jclass c = env_->FindClass("java/lang/String"); in TEST_F()
944 jfieldID fid = env_->GetFieldID(c, "count", "I"); in TEST_F()
947 jobject field = env_->ToReflectedField(c, fid, JNI_FALSE); in TEST_F()
948 size_t capacity_before = GetLocalsCapacity(env_); in TEST_F()
952 env_->DeleteLocalRef(env_->ToReflectedField(c, fid, JNI_FALSE)); in TEST_F()
954 size_t capacity_after = GetLocalsCapacity(env_); in TEST_F()
958 ASSERT_TRUE(env_->IsInstanceOf(field, jlrField)); in TEST_F()
960 jfieldID fid2 = env_->FromReflectedField(field); in TEST_F()
963 jstring s = env_->NewStringUTF("poop"); in TEST_F()
966 env_->GetIntField(s, fid2)); in TEST_F()
968 jstring s_16 = env_->NewStringUTF("\u0444\u0444"); in TEST_F()
970 env_->GetIntField(s_16, fid2)); in TEST_F()
972 ASSERT_EQ(4, env_->GetIntField(s, fid2)); in TEST_F()
980 jclass jlrMethod = env_->FindClass("java/lang/reflect/Method"); in TEST_F()
982 jclass jlrConstructor = env_->FindClass("java/lang/reflect/Constructor"); in TEST_F()
984 jclass c = env_->FindClass("java/lang/String"); in TEST_F()
987 jmethodID mid = env_->GetMethodID(c, "<init>", "()V"); in TEST_F()
990 jobject method = env_->ToReflectedMethod(c, mid, JNI_FALSE); in TEST_F()
991 size_t capacity_before = GetLocalsCapacity(env_); in TEST_F()
995 env_->DeleteLocalRef(env_->ToReflectedMethod(c, mid, JNI_FALSE)); in TEST_F()
997 size_t capacity_after = GetLocalsCapacity(env_); in TEST_F()
1000 ASSERT_TRUE(env_->IsInstanceOf(method, jlrConstructor)); in TEST_F()
1002 jmethodID mid2 = env_->FromReflectedMethod(method); in TEST_F()
1005 jstring s = reinterpret_cast<jstring>(env_->AllocObject(c)); in TEST_F()
1007 env_->CallVoidMethod(s, mid2); in TEST_F()
1008 ASSERT_EQ(JNI_FALSE, env_->ExceptionCheck()); in TEST_F()
1009 env_->ExceptionClear(); in TEST_F()
1011 mid = env_->GetMethodID(c, "length", "()I"); in TEST_F()
1014 method = env_->ToReflectedMethod(c, mid, JNI_FALSE); in TEST_F()
1016 ASSERT_TRUE(env_->IsInstanceOf(method, jlrMethod)); in TEST_F()
1018 mid2 = env_->FromReflectedMethod(method); in TEST_F()
1021 s = env_->NewStringUTF("poop"); in TEST_F()
1023 ASSERT_EQ(4, env_->CallIntMethod(s, mid2)); in TEST_F()
1035 jclass jlobject = env_->FindClass("java/lang/Object"); in TEST_F()
1036 jclass jlnsme = env_->FindClass("java/lang/NoSuchMethodError"); in TEST_F()
1040 ASSERT_FALSE(env_->ExceptionCheck()); in TEST_F()
1048 EXPECT_EQ(env_->RegisterNatives(jlobject, methods, 1), JNI_ERR); in TEST_F()
1055 EXPECT_EQ(env_->RegisterNatives(jlobject, methods, 1), JNI_ERR); in TEST_F()
1062 EXPECT_EQ(env_->RegisterNatives(jlobject, methods, 1), JNI_ERR); in TEST_F()
1069 EXPECT_EQ(env_->RegisterNatives(jlobject, methods, 1), JNI_ERR); in TEST_F()
1076 EXPECT_EQ(env_->RegisterNatives(jlobject, methods, 1), JNI_ERR); in TEST_F()
1084 EXPECT_EQ(env_->RegisterNatives(jlobject, methods, 1), JNI_OK); in TEST_F()
1086 EXPECT_FALSE(env_->ExceptionCheck()); in TEST_F()
1087 EXPECT_EQ(env_->UnregisterNatives(jlobject), JNI_OK); in TEST_F()
1092 EXPECT_EQ(env_->RegisterNatives(jlobject, methods, 0), JNI_OK); in TEST_F()
1094 EXPECT_FALSE(env_->ExceptionCheck()); in TEST_F()
1095 EXPECT_EQ(env_->UnregisterNatives(jlobject), JNI_OK); in TEST_F()
1101 EXPECT_EQ(env_->RegisterNatives(jlobject, methods, i), JNI_ERR); in TEST_F()
1104 EXPECT_FALSE(env_->ExceptionCheck()); in TEST_F()
1107 EXPECT_EQ(env_->UnregisterNatives(jlnsme), JNI_OK); in TEST_F()
1124 down_cast<JNIEnvExt*>(env_)->SetCheckJniEnabled(false); \
1126 EXPECT_EQ(env_->new_fn(-1), nullptr); \
1128 EXPECT_EQ(env_->new_fn(std::numeric_limits<jint>::min()), nullptr); \
1131 EXPECT_EQ(0, env_->GetArrayLength(nullptr)); \
1133 env_->get_region_fn(nullptr, 0, 0, nullptr); \
1135 env_->set_region_fn(nullptr, 0, 0, nullptr); \
1137 env_->get_elements_fn(nullptr, nullptr); \
1139 env_->release_elements_fn(nullptr, nullptr, 0); \
1142 scalar_type ## Array a = env_->new_fn(size); \
1143 env_->get_region_fn(a, 0, size, nullptr); \
1145 env_->set_region_fn(a, 0, size, nullptr); \
1147 down_cast<JNIEnvExt*>(env_)->SetCheckJniEnabled(true); \
1150 scalar_type ## Array a = env_->new_fn(size); \
1152 EXPECT_TRUE(env_->IsInstanceOf(a, env_->FindClass(expected_class_descriptor))); \
1153 EXPECT_EQ(size, env_->GetArrayLength(a)); \
1157 env_->get_region_fn(a, -1, 1, nullptr); \
1159 env_->set_region_fn(a, -1, 1, nullptr); \
1163 env_->get_region_fn(a, 0, -1, nullptr); \
1165 env_->set_region_fn(a, 0, -1, nullptr); \
1169 env_->get_region_fn(a, size - 1, size, nullptr); \
1171 env_->set_region_fn(a, size - 1, size, nullptr); \
1175 env_->get_region_fn(a, 0x7fffffff, 0x7fffffff, nullptr); \
1177 env_->set_region_fn(a, 0x7fffffff, 0x7fffffff, nullptr); \
1181 env_->get_region_fn(a, 2, 0, nullptr); \
1183 env_->get_region_fn(a, 123, 0, nullptr); \
1187 env_->set_region_fn(a, 2, 0, nullptr); \
1189 env_->set_region_fn(a, 123, 0, nullptr); \
1200 env_->set_region_fn(a, 0, size, &src_buf[0]); \
1202 env_->get_region_fn(a, 1, size - 2, &dst_buf[1]); \
1206 env_->get_region_fn(a, 0, 1, &dst_buf[0]); \
1207 env_->get_region_fn(a, size - 1, 1, &dst_buf[size - 1]); \
1211 env_->get_region_fn(a, 0, size, &dst_buf[0]); \
1215 void* v = env_->GetPrimitiveArrayCritical(a, nullptr); \
1218 env_->ReleasePrimitiveArrayCritical(a, v, 0); \
1220 scalar_type* xs = env_->get_elements_fn(a, nullptr); /* NOLINT, scalar_type */ \
1223 env_->release_elements_fn(a, xs, 0); \
1284 jclass element_class = env_->FindClass("java/lang/String"); in TEST_F()
1286 jclass array_class = env_->FindClass("[Ljava/lang/String;"); in TEST_F()
1289 jobjectArray a = env_->NewObjectArray(0, element_class, nullptr); in TEST_F()
1291 EXPECT_TRUE(env_->IsInstanceOf(a, array_class)); in TEST_F()
1292 EXPECT_EQ(0, env_->GetArrayLength(a)); in TEST_F()
1294 a = env_->NewObjectArray(1, element_class, nullptr); in TEST_F()
1296 EXPECT_TRUE(env_->IsInstanceOf(a, array_class)); in TEST_F()
1297 EXPECT_EQ(1, env_->GetArrayLength(a)); in TEST_F()
1298 EXPECT_TRUE(env_->IsSameObject(env_->GetObjectArrayElement(a, 0), nullptr)); in TEST_F()
1315 env_->NewObjectArray(0, nullptr, nullptr); in TEST_F()
1318 env_->NewObjectArray(1, primitive_class, nullptr); in TEST_F()
1324 env_->NewObjectArray(0, nullptr, nullptr); in TEST_F()
1327 env_->NewObjectArray(1, primitive_class, nullptr); in TEST_F()
1335 jclass element_class = env_->FindClass("java/lang/String"); in TEST_F()
1337 jclass array_class = env_->FindClass("[Ljava/lang/String;"); in TEST_F()
1340 jstring s = env_->NewStringUTF("poop"); in TEST_F()
1341 jobjectArray a = env_->NewObjectArray(2, element_class, s); in TEST_F()
1343 EXPECT_TRUE(env_->IsInstanceOf(a, array_class)); in TEST_F()
1344 EXPECT_EQ(2, env_->GetArrayLength(a)); in TEST_F()
1345 EXPECT_TRUE(env_->IsSameObject(env_->GetObjectArrayElement(a, 0), s)); in TEST_F()
1346 EXPECT_TRUE(env_->IsSameObject(env_->GetObjectArrayElement(a, 1), s)); in TEST_F()
1350 env_->NewObjectArray(2, element_class, a); in TEST_F()
1359 EXPECT_EQ(0, env_->GetArrayLength(nullptr)); in TEST_F()
1362 EXPECT_EQ(JNI_ERR, env_->GetArrayLength(nullptr)); in TEST_F()
1368 jclass string_class = env_->FindClass("java/lang/String"); in TEST_F()
1370 jclass class_class = env_->FindClass("java/lang/Class"); in TEST_F()
1373 jstring s = env_->NewStringUTF("poop"); in TEST_F()
1374 jclass c = env_->GetObjectClass(s); in TEST_F()
1375 ASSERT_TRUE(env_->IsSameObject(string_class, c)); in TEST_F()
1377 jclass c2 = env_->GetObjectClass(c); in TEST_F()
1378 ASSERT_TRUE(env_->IsSameObject(class_class, env_->GetObjectClass(c2))); in TEST_F()
1382 EXPECT_EQ(env_->GetObjectClass(nullptr), nullptr); in TEST_F()
1387 jclass object_class = env_->FindClass("java/lang/Object"); in TEST_F()
1389 jclass string_class = env_->FindClass("java/lang/String"); in TEST_F()
1391 jclass runnable_interface = env_->FindClass("java/lang/Runnable"); in TEST_F()
1393 ASSERT_TRUE(env_->IsSameObject(object_class, env_->GetSuperclass(string_class))); in TEST_F()
1394 ASSERT_EQ(env_->GetSuperclass(object_class), nullptr); in TEST_F()
1395 ASSERT_EQ(env_->GetSuperclass(runnable_interface), nullptr); in TEST_F()
1400 EXPECT_EQ(env_->GetSuperclass(nullptr), nullptr); in TEST_F()
1403 EXPECT_EQ(env_->GetSuperclass(nullptr), nullptr); in TEST_F()
1409 jclass object_class = env_->FindClass("java/lang/Object"); in TEST_F()
1411 jclass string_class = env_->FindClass("java/lang/String"); in TEST_F()
1416 ASSERT_TRUE(env_->IsAssignableFrom(string_class, object_class)); in TEST_F()
1417 ASSERT_FALSE(env_->IsAssignableFrom(object_class, string_class)); in TEST_F()
1419 jclass charsequence_interface = env_->FindClass("java/lang/CharSequence"); in TEST_F()
1424 ASSERT_TRUE(env_->IsAssignableFrom(string_class, charsequence_interface)); in TEST_F()
1425 ASSERT_FALSE(env_->IsAssignableFrom(charsequence_interface, string_class)); in TEST_F()
1428 jclass string_array_class = env_->FindClass("[Ljava/lang/String;"); in TEST_F()
1430 jclass object_array_class = env_->FindClass("[Ljava/lang/Object;"); in TEST_F()
1432 ASSERT_TRUE(env_->IsAssignableFrom(string_array_class, object_array_class)); in TEST_F()
1433 ASSERT_FALSE(env_->IsAssignableFrom(object_array_class, string_array_class)); in TEST_F()
1440 EXPECT_EQ(env_->IsAssignableFrom(nullptr, string_class), JNI_FALSE); in TEST_F()
1442 EXPECT_EQ(env_->IsAssignableFrom(object_class, nullptr), JNI_FALSE); in TEST_F()
1445 EXPECT_EQ(env_->IsAssignableFrom(nullptr, string_class), JNI_FALSE); in TEST_F()
1447 EXPECT_EQ(env_->IsAssignableFrom(object_class, nullptr), JNI_FALSE); in TEST_F()
1453 jclass local = env_->FindClass("java/lang/Object"); in TEST_F()
1455 EXPECT_EQ(JNILocalRefType, env_->GetObjectRefType(local)); in TEST_F()
1457 jobject global = env_->NewGlobalRef(local); in TEST_F()
1458 EXPECT_EQ(JNIGlobalRefType, env_->GetObjectRefType(global)); in TEST_F()
1460 jweak weak_global = env_->NewWeakGlobalRef(local); in TEST_F()
1461 EXPECT_EQ(JNIWeakGlobalRefType, env_->GetObjectRefType(weak_global)); in TEST_F()
1466 EXPECT_EQ(JNIInvalidRefType, env_->GetObjectRefType(invalid)); in TEST_F()
1473 EXPECT_EQ(JNIInvalidRefType, env_->GetObjectRefType(nullptr)); in TEST_F()
1480 jclass java_lang_Class = env_->FindClass("java/lang/Class"); in TEST_F()
1482 jobjectArray local_ref = env_->NewObjectArray(1, java_lang_Class, nullptr); in TEST_F()
1484 jweak weak_global = env_->NewWeakGlobalRef(local_ref); in TEST_F()
1486 env_->DeleteLocalRef(local_ref); in TEST_F()
1489 jobject new_global_ref = env_->NewGlobalRef(weak_global); in TEST_F()
1491 jobject new_local_ref = env_->NewLocalRef(weak_global); in TEST_F()
1496 EXPECT_EQ(env_->NewStringUTF(nullptr), nullptr); in TEST_F()
1499 s = env_->NewStringUTF(""); in TEST_F()
1501 EXPECT_EQ(0, env_->GetStringLength(s)); in TEST_F()
1502 EXPECT_EQ(0, env_->GetStringUTFLength(s)); in TEST_F()
1503 s = env_->NewStringUTF("hello"); in TEST_F()
1505 EXPECT_EQ(5, env_->GetStringLength(s)); in TEST_F()
1506 EXPECT_EQ(5, env_->GetStringUTFLength(s)); in TEST_F()
1509 s = env_->NewStringUTF("\xed\xa0\x81\xed\xb0\x80"); in TEST_F()
1511 EXPECT_EQ(2, env_->GetStringLength(s)); in TEST_F()
1514 EXPECT_EQ(4, env_->GetStringUTFLength(s)); in TEST_F()
1515 const char* chars = env_->GetStringUTFChars(s, nullptr); in TEST_F()
1517 env_->ReleaseStringUTFChars(s, chars); in TEST_F()
1520 const jchar* jchars = env_->GetStringChars(s, nullptr); in TEST_F()
1523 env_->ReleaseStringChars(s, jchars); in TEST_F()
1526 s = env_->NewStringUTF("\xed\xa0\x81\xed\xb0\x80 \xf0\x9f\x8f\xa0"); in TEST_F()
1531 EXPECT_EQ(5, env_->GetStringLength(s)); in TEST_F()
1532 jchars = env_->GetStringChars(s, nullptr); in TEST_F()
1539 env_->ReleaseStringChars(s, jchars); in TEST_F()
1541 EXPECT_EQ(9, env_->GetStringUTFLength(s)); in TEST_F()
1542 chars = env_->GetStringUTFChars(s, nullptr); in TEST_F()
1544 env_->ReleaseStringUTFChars(s, chars); in TEST_F()
1548 s = env_->NewStringUTF("\x24 \xc2\xa2 \xe2\x82\xac \xf0\x9f\x8f\xa0"); in TEST_F()
1550 EXPECT_EQ(8, env_->GetStringLength(s)); in TEST_F()
1551 EXPECT_EQ(13, env_->GetStringUTFLength(s)); in TEST_F()
1566 jclass c = env_->FindClass("java/lang/String"); in TEST_F()
1568 jfieldID count_fid = env_->GetFieldID(c, "count", "I"); in TEST_F()
1572 const JNINativeInterface* base_env = down_cast<JNIEnvExt*>(env_)->GetUncheckedFunctions(); in TEST_F()
1577 jstring s = base_env->NewStringUTF(env_, utf_src); in TEST_F()
1579 env_->GetIntField(s, count_fid)); in TEST_F()
1580 const char* chars = env_->GetStringUTFChars(s, nullptr); in TEST_F()
1584 env_->ReleaseStringUTFChars(s, chars); in TEST_F()
1589 s = base_env->NewStringUTF(env_, utf_src); in TEST_F()
1591 env_->GetIntField(s, count_fid)); in TEST_F()
1592 chars = env_->GetStringUTFChars(s, nullptr); in TEST_F()
1597 env_->ReleaseStringUTFChars(s, chars); in TEST_F()
1603 s = base_env->NewStringUTF(env_, utf_src); in TEST_F()
1605 env_->GetIntField(s, count_fid)); in TEST_F()
1606 const jchar* jchars = env_->GetStringChars(s, nullptr); in TEST_F()
1612 env_->ReleaseStringChars(s, jchars); in TEST_F()
1617 s = base_env->NewStringUTF(env_, utf_src); in TEST_F()
1620 env_->GetIntField(s, count_fid)); in TEST_F()
1621 jchars = env_->GetStringChars(s, nullptr); in TEST_F()
1627 env_->ReleaseStringChars(s, jchars); in TEST_F()
1633 s = base_env->NewStringUTF(env_, utf_src); in TEST_F()
1636 env_->GetIntField(s, count_fid)); in TEST_F()
1637 jchars = env_->GetStringChars(s, nullptr); in TEST_F()
1643 env_->ReleaseStringChars(s, jchars); in TEST_F()
1648 s = base_env->NewStringUTF(env_, utf_src); in TEST_F()
1650 env_->GetIntField(s, count_fid)); in TEST_F()
1651 jchars = env_->GetStringChars(s, nullptr); in TEST_F()
1657 env_->ReleaseStringChars(s, jchars); in TEST_F()
1664 s = base_env->NewStringUTF(env_, utf_src); in TEST_F()
1666 env_->GetIntField(s, count_fid)); in TEST_F()
1667 jchars = env_->GetStringChars(s, nullptr); in TEST_F()
1673 env_->ReleaseStringChars(s, jchars); in TEST_F()
1679 s = env_->NewString(chars, 0); in TEST_F()
1681 EXPECT_EQ(0, env_->GetStringLength(s)); in TEST_F()
1682 EXPECT_EQ(0, env_->GetStringUTFLength(s)); in TEST_F()
1683 s = env_->NewString(chars, 2); in TEST_F()
1685 EXPECT_EQ(2, env_->GetStringLength(s)); in TEST_F()
1686 EXPECT_EQ(2, env_->GetStringUTFLength(s)); in TEST_F()
1692 jstring s = env_->NewString(nullptr, 0); in TEST_F()
1694 EXPECT_EQ(0, env_->GetStringLength(s)); in TEST_F()
1699 env_->NewString(nullptr, 1); in TEST_F()
1706 env_->NewString(nullptr, -1); in TEST_F()
1708 env_->NewString(nullptr, std::numeric_limits<jint>::min()); in TEST_F()
1711 env_->NewString(nullptr, -1); in TEST_F()
1713 env_->NewString(nullptr, std::numeric_limits<jint>::min()); in TEST_F()
1723 jstring s = env_->NewStringUTF("hello"); in TEST_F()
1726 env_->GetStringRegion(s, -1, 0, nullptr); in TEST_F()
1728 env_->GetStringRegion(s, 0, -1, nullptr); in TEST_F()
1730 env_->GetStringRegion(s, 0, 10, nullptr); in TEST_F()
1732 env_->GetStringRegion(s, 10, 1, nullptr); in TEST_F()
1735 env_->GetStringRegion(s, 0x7fffffff, 0x7fffffff, nullptr); in TEST_F()
1739 env_->GetStringRegion(s, 1, 2, &chars[1]); in TEST_F()
1746 env_->GetStringRegion(s, 2, 0, nullptr); in TEST_F()
1748 env_->GetStringRegion(s, 123, 0, nullptr); in TEST_F()
1751 env_->GetStringUTFRegion(s, -1, 0, nullptr); in TEST_F()
1753 env_->GetStringUTFRegion(s, 0, -1, nullptr); in TEST_F()
1755 env_->GetStringUTFRegion(s, 0, 10, nullptr); in TEST_F()
1757 env_->GetStringUTFRegion(s, 10, 1, nullptr); in TEST_F()
1760 env_->GetStringUTFRegion(s, 0x7fffffff, 0x7fffffff, nullptr); in TEST_F()
1764 env_->GetStringUTFRegion(s, 1, 2, &bytes[1]); in TEST_F()
1773 env_->GetStringUTFRegion(s, 2, 0, nullptr); in TEST_F()
1775 env_->GetStringUTFRegion(s, 123, 0, nullptr); in TEST_F()
1778 env_->GetStringUTFRegion(s, 1, 0, &bytes[1]); in TEST_F()
1791 EXPECT_EQ(env_->GetStringUTFChars(nullptr, nullptr), nullptr); in TEST_F()
1796 EXPECT_EQ(env_->GetStringUTFChars(nullptr, nullptr), nullptr); in TEST_F()
1801 jstring s = env_->NewStringUTF("hello"); in TEST_F()
1804 const char* utf = env_->GetStringUTFChars(s, nullptr); in TEST_F()
1806 env_->ReleaseStringUTFChars(s, utf); in TEST_F()
1809 utf = env_->GetStringUTFChars(s, &is_copy); in TEST_F()
1812 env_->ReleaseStringUTFChars(s, utf); in TEST_F()
1816 jstring s = env_->NewStringUTF("hello"); in TEST_F()
1817 ScopedObjectAccess soa(env_); in TEST_F()
1822 const jchar* chars = env_->GetStringChars(s, nullptr); in TEST_F()
1828 env_->ReleaseStringChars(s, chars); in TEST_F()
1831 chars = env_->GetStringChars(s, &is_copy); in TEST_F()
1842 env_->ReleaseStringChars(s, chars); in TEST_F()
1846 jstring s = env_->NewStringUTF("hello"); in TEST_F()
1850 const jchar* chars = env_->GetStringCritical(s, nullptr); in TEST_F()
1856 env_->ReleaseStringCritical(s, chars); in TEST_F()
1859 chars = env_->GetStringCritical(s, &is_copy); in TEST_F()
1871 env_->ReleaseStringCritical(s, chars); in TEST_F()
1876 jstring s_16 = env_->NewStringUTF("\xed\xa0\x81\xed\xb0\x80"); in TEST_F()
1877 chars = env_->GetStringCritical(s_16, &is_copy_16); in TEST_F()
1878 EXPECT_EQ(2, env_->GetStringLength(s_16)); in TEST_F()
1879 EXPECT_EQ(4, env_->GetStringUTFLength(s_16)); in TEST_F()
1880 env_->ReleaseStringCritical(s_16, chars); in TEST_F()
1885 jclass java_lang_Class = env_->FindClass("java/lang/Class"); in TEST_F()
1888 jobjectArray array = env_->NewObjectArray(1, java_lang_Class, nullptr); in TEST_F()
1890 EXPECT_EQ(env_->GetObjectArrayElement(array, 0), nullptr); in TEST_F()
1891 env_->SetObjectArrayElement(array, 0, java_lang_Class); in TEST_F()
1892 EXPECT_TRUE(env_->IsSameObject(env_->GetObjectArrayElement(array, 0), java_lang_Class)); in TEST_F()
1895 env_->SetObjectArrayElement(array, -1, java_lang_Class); in TEST_F()
1899 env_->SetObjectArrayElement(array, 1, java_lang_Class); in TEST_F()
1903 env_->SetObjectArrayElement(array, 0, env_->NewStringUTF("not a jclass!")); in TEST_F()
1909 EXPECT_EQ(nullptr, env_->GetObjectArrayElement(nullptr, 0)); in TEST_F()
1911 env_->SetObjectArrayElement(nullptr, 0, nullptr); in TEST_F()
1914 EXPECT_EQ(nullptr, env_->GetObjectArrayElement(nullptr, 0)); in TEST_F()
1916 env_->SetObjectArrayElement(nullptr, 0, nullptr); in TEST_F()
1923 jfieldID fid = env_->GetStaticFieldID(c, field_name, sig); \
1925 env_->SetStatic ## type ## Field(c, fid, value1); \
1926 expect_eq(value1, env_->GetStatic ## type ## Field(c, fid)); \
1927 env_->SetStatic ## type ## Field(c, fid, value2); \
1928 expect_eq(value2, env_->GetStatic ## type ## Field(c, fid)); \
1933 env_->GetStatic ## type ## Field(nullptr, fid); \
1934 env_->SetStatic ## type ## Field(nullptr, fid, value1); \
1937 env_->GetStatic ## type ## Field(c, nullptr); \
1939 env_->SetStatic ## type ## Field(c, nullptr, value1); \
1943 env_->GetStatic ## type ## Field(nullptr, fid); \
1945 env_->SetStatic ## type ## Field(nullptr, fid, value1); \
1947 env_->GetStatic ## type ## Field(c, nullptr); \
1949 env_->SetStatic ## type ## Field(c, nullptr, value1); \
1956 jfieldID fid = env_->GetFieldID(c, field_name, sig); \
1958 env_->Set ## type ## Field(instance, fid, value1); \
1959 expect_eq(value1, env_->Get ## type ## Field(instance, fid)); \
1960 env_->Set ## type ## Field(instance, fid, value2); \
1961 expect_eq(value2, env_->Get ## type ## Field(instance, fid)); \
1965 env_->Get ## type ## Field(nullptr, fid); \
1967 env_->Set ## type ## Field(nullptr, fid, value1); \
1969 env_->Get ## type ## Field(instance, nullptr); \
1971 env_->Set ## type ## Field(instance, nullptr, value1); \
1974 env_->Get ## type ## Field(nullptr, fid); \
1976 env_->Set ## type ## Field(nullptr, fid, value1); \
1978 env_->Get ## type ## Field(instance, nullptr); \
1980 env_->Set ## type ## Field(instance, nullptr, value1); \
1991 jclass c = env_->FindClass(cname); \
1993 jobject o = env_->AllocObject(c); \
2025 jfieldID fid = env_->GetStaticFieldID(c, field_name, sig); \
2028 env_->Get ## type ## Field(uc, fid); \
2030 env_->Set ## type ## Field(uc, fid, value1); \
2039 jclass c = env_->FindClass("AllFields"); in TEST_F()
2041 jclass uc = env_->FindClass("AllFieldsUnrelated"); in TEST_F()
2062 jclass c = env_->FindClass(cname); \
2064 jobject o = env_->AllocObject(c); \
2067 jstring s1 = env_->NewStringUTF("hello"); \
2069 jstring s2 = env_->NewStringUTF("world"); \
2072 jfieldID s_fid = env_->GetStaticFieldID(c, "sObject", "Ljava/lang/Object;"); \
2074 jfieldID i_fid = env_->GetFieldID(c, "iObject", "Ljava/lang/Object;"); \
2077 env_->SetStaticObjectField(c, s_fid, s1); \
2078 ASSERT_TRUE(env_->IsSameObject(s1, env_->GetStaticObjectField(c, s_fid))); \
2079 env_->SetStaticObjectField(c, s_fid, s2); \
2080 ASSERT_TRUE(env_->IsSameObject(s2, env_->GetStaticObjectField(c, s_fid))); \
2082 env_->SetObjectField(o, i_fid, s1); \
2083 ASSERT_TRUE(env_->IsSameObject(s1, env_->GetObjectField(o, i_fid))); \
2084 env_->SetObjectField(o, i_fid, s2); \
2085 ASSERT_TRUE(env_->IsSameObject(s2, env_->GetObjectField(o, i_fid))); \
2097 EXPECT_EQ(env_->NewLocalRef(nullptr), nullptr); in TEST_F()
2101 jstring s = env_->NewStringUTF(""); in TEST_F()
2103 jobject o = env_->NewLocalRef(s); in TEST_F()
2107 EXPECT_EQ(JNILocalRefType, env_->GetObjectRefType(o)); in TEST_F()
2111 env_->DeleteLocalRef(nullptr); in TEST_F()
2118 jstring s = env_->NewStringUTF(""); in TEST_F()
2120 env_->DeleteLocalRef(s); in TEST_F()
2126 env_->DeleteLocalRef(s); in TEST_F()
2132 s = env_->NewStringUTF(""); in TEST_F()
2134 jobject o = env_->NewLocalRef(s); in TEST_F()
2137 env_->DeleteLocalRef(s); in TEST_F()
2138 env_->DeleteLocalRef(o); in TEST_F()
2146 ASSERT_EQ(JNI_OK, env_->PushLocalFrame(0)); in TEST_F()
2147 env_->PopLocalFrame(nullptr); in TEST_F()
2153 ASSERT_EQ(JNI_ERR, env_->PushLocalFrame(-1)); in TEST_F()
2160 jobject original = env_->NewStringUTF(""); in TEST_F()
2165 ScopedObjectAccess soa(env_); in TEST_F()
2167 ASSERT_EQ(JNI_OK, env_->PushLocalFrame(4)); in TEST_F()
2168 outer = env_->NewLocalRef(original); in TEST_F()
2171 ASSERT_EQ(JNI_OK, env_->PushLocalFrame(4)); in TEST_F()
2172 inner1 = env_->NewLocalRef(outer); in TEST_F()
2173 inner2 = env_->NewStringUTF("survivor"); in TEST_F()
2174 EXPECT_NE(env_->PopLocalFrame(inner2), nullptr); in TEST_F()
2177 EXPECT_EQ(JNILocalRefType, env_->GetObjectRefType(original)); in TEST_F()
2178 EXPECT_EQ(JNILocalRefType, env_->GetObjectRefType(outer)); in TEST_F()
2181 EXPECT_EQ(JNIInvalidRefType, env_->GetObjectRefType(inner1)); in TEST_F()
2189 EXPECT_EQ(JNIInvalidRefType, env_->GetObjectRefType(inner2)); in TEST_F()
2193 EXPECT_EQ(env_->PopLocalFrame(nullptr), nullptr); in TEST_F()
2195 EXPECT_EQ(JNILocalRefType, env_->GetObjectRefType(original)); in TEST_F()
2197 EXPECT_EQ(JNIInvalidRefType, env_->GetObjectRefType(outer)); in TEST_F()
2199 EXPECT_EQ(JNIInvalidRefType, env_->GetObjectRefType(inner1)); in TEST_F()
2201 EXPECT_EQ(JNIInvalidRefType, env_->GetObjectRefType(inner2)); in TEST_F()
2207 ASSERT_NE(JNI_OK, env_->PushLocalFrame(std::numeric_limits<jint>::max())); in TEST_F()
2208 ASSERT_TRUE(env_->ExceptionCheck()); in TEST_F()
2209 env_->ExceptionClear(); in TEST_F()
2213 ASSERT_EQ(JNI_OK, env_->PushLocalFrame(10)); in TEST_F()
2214 ASSERT_NE(JNI_OK, env_->PushLocalFrame(std::numeric_limits<jint>::max() - 10)); in TEST_F()
2215 ASSERT_TRUE(env_->ExceptionCheck()); in TEST_F()
2216 env_->ExceptionClear(); in TEST_F()
2217 EXPECT_EQ(env_->PopLocalFrame(nullptr), nullptr); in TEST_F()
2223 ASSERT_EQ(JNI_OK, env_->PushLocalFrame(1024)); in TEST_F()
2224 EXPECT_EQ(env_->PopLocalFrame(nullptr), nullptr); in TEST_F()
2228 EXPECT_EQ(env_->NewGlobalRef(nullptr), nullptr); in TEST_F()
2232 jstring s = env_->NewStringUTF(""); in TEST_F()
2234 jobject o = env_->NewGlobalRef(s); in TEST_F()
2238 EXPECT_EQ(env_->GetObjectRefType(o), JNIGlobalRefType); in TEST_F()
2242 env_->DeleteGlobalRef(nullptr); in TEST_F()
2249 jstring s = env_->NewStringUTF(""); in TEST_F()
2252 jobject o = env_->NewGlobalRef(s); in TEST_F()
2254 env_->DeleteGlobalRef(o); in TEST_F()
2260 env_->DeleteGlobalRef(o); in TEST_F()
2266 jobject o1 = env_->NewGlobalRef(s); in TEST_F()
2268 jobject o2 = env_->NewGlobalRef(s); in TEST_F()
2271 env_->DeleteGlobalRef(o1); in TEST_F()
2272 env_->DeleteGlobalRef(o2); in TEST_F()
2276 EXPECT_EQ(env_->NewWeakGlobalRef(nullptr), nullptr); in TEST_F()
2280 jstring s = env_->NewStringUTF(""); in TEST_F()
2282 jobject o = env_->NewWeakGlobalRef(s); in TEST_F()
2286 EXPECT_EQ(env_->GetObjectRefType(o), JNIWeakGlobalRefType); in TEST_F()
2290 env_->DeleteWeakGlobalRef(nullptr); in TEST_F()
2297 jstring s = env_->NewStringUTF(""); in TEST_F()
2300 jobject o = env_->NewWeakGlobalRef(s); in TEST_F()
2302 env_->DeleteWeakGlobalRef(o); in TEST_F()
2308 env_->DeleteWeakGlobalRef(o); in TEST_F()
2314 jobject o1 = env_->NewWeakGlobalRef(s); in TEST_F()
2316 jobject o2 = env_->NewWeakGlobalRef(s); in TEST_F()
2319 env_->DeleteWeakGlobalRef(o1); in TEST_F()
2320 env_->DeleteWeakGlobalRef(o2); in TEST_F()
2325 env_->ExceptionClear(); in TEST_F()
2326 env_->ExceptionDescribe(); in TEST_F()
2330 jclass exception_class = env_->FindClass("java/lang/RuntimeException"); in TEST_F()
2332 jthrowable exception = reinterpret_cast<jthrowable>(env_->AllocObject(exception_class)); in TEST_F()
2335 EXPECT_EQ(JNI_OK, env_->Throw(exception)); in TEST_F()
2336 EXPECT_TRUE(env_->ExceptionCheck()); in TEST_F()
2337 jthrowable thrown_exception = env_->ExceptionOccurred(); in TEST_F()
2338 env_->ExceptionClear(); in TEST_F()
2339 EXPECT_TRUE(env_->IsSameObject(exception, thrown_exception)); in TEST_F()
2343 EXPECT_EQ(JNI_ERR, env_->Throw(nullptr)); in TEST_F()
2346 EXPECT_EQ(JNI_ERR, env_->Throw(nullptr)); in TEST_F()
2352 jclass exception_class = env_->FindClass("java/lang/RuntimeException"); in TEST_F()
2357 EXPECT_EQ(JNI_OK, env_->ThrowNew(exception_class, "hello world")); in TEST_F()
2358 EXPECT_TRUE(env_->ExceptionCheck()); in TEST_F()
2359 thrown_exception = env_->ExceptionOccurred(); in TEST_F()
2360 env_->ExceptionClear(); in TEST_F()
2361 EXPECT_TRUE(env_->IsInstanceOf(thrown_exception, exception_class)); in TEST_F()
2363 EXPECT_EQ(JNI_OK, env_->ThrowNew(exception_class, nullptr)); in TEST_F()
2364 EXPECT_TRUE(env_->ExceptionCheck()); in TEST_F()
2365 thrown_exception = env_->ExceptionOccurred(); in TEST_F()
2366 env_->ExceptionClear(); in TEST_F()
2367 EXPECT_TRUE(env_->IsInstanceOf(thrown_exception, exception_class)); in TEST_F()
2372 EXPECT_EQ(JNI_ERR, env_->ThrowNew(nullptr, nullptr)); in TEST_F()
2375 EXPECT_EQ(JNI_ERR, env_->ThrowNew(nullptr, nullptr)); in TEST_F()
2397 jclass buffer_class = env_->FindClass("java/nio/Buffer"); in TEST_F()
2401 jobject direct_buffer = env_->NewDirectByteBuffer(bytes, sizeof(bytes)); in TEST_F()
2403 ASSERT_TRUE(env_->IsInstanceOf(direct_buffer, buffer_class)); in TEST_F()
2404 ASSERT_EQ(env_->GetDirectBufferAddress(direct_buffer), bytes); in TEST_F()
2405 ASSERT_EQ(env_->GetDirectBufferCapacity(direct_buffer), static_cast<jlong>(sizeof(bytes))); in TEST_F()
2408 ASSERT_EQ(env_->GetDirectBufferAddress(nullptr), nullptr); in TEST_F()
2409 ASSERT_EQ(env_->GetDirectBufferCapacity(nullptr), -1L); in TEST_F()
2413 ScopedLocalRef<jclass> bb(env_, env_->FindClass("java/nio/ByteBuffer")); in TEST_F()
2414 jmethodID bb_allocate = env_->GetStaticMethodID(bb.get(), "allocate", "(I)Ljava/nio/ByteBuffer;"); in TEST_F()
2415 jobject heap_buffer = env_->CallStaticObjectMethod(bb.get(), bb_allocate, 128); in TEST_F()
2417 ASSERT_EQ(env_->GetDirectBufferAddress(heap_buffer), nullptr); in TEST_F()
2418 ASSERT_EQ(env_->GetDirectBufferCapacity(heap_buffer), -1L); in TEST_F()
2422 jobject not_buffer = env_->NewStringUTF("A String"); in TEST_F()
2423 ASSERT_EQ(env_->GetDirectBufferAddress(not_buffer), nullptr); in TEST_F()
2424 ASSERT_EQ(env_->GetDirectBufferCapacity(not_buffer), -1L); in TEST_F()
2428 env_->NewDirectByteBuffer(bytes, static_cast<jlong>(INT_MAX) + 1); in TEST_F()
2438 jclass object_class = env_->FindClass("java/lang/Object"); in TEST_F()
2440 jobject object = env_->AllocObject(object_class); in TEST_F()
2444 jclass imse_class = env_->FindClass("java/lang/IllegalMonitorStateException"); in TEST_F()
2450 env_->MonitorExit(object); in TEST_F()
2451 EXPECT_TRUE(env_->ExceptionCheck()); in TEST_F()
2452 thrown_exception = env_->ExceptionOccurred(); in TEST_F()
2453 env_->ExceptionClear(); in TEST_F()
2454 EXPECT_TRUE(env_->IsInstanceOf(thrown_exception, imse_class)); in TEST_F()
2457 env_->MonitorEnter(object); in TEST_F()
2458 EXPECT_FALSE(env_->ExceptionCheck()); in TEST_F()
2460 env_->MonitorExit(object); in TEST_F()
2461 EXPECT_FALSE(env_->ExceptionCheck()); in TEST_F()
2466 env_->MonitorEnter(object); in TEST_F()
2467 EXPECT_FALSE(env_->ExceptionCheck()); in TEST_F()
2471 env_->MonitorExit(object); in TEST_F()
2472 EXPECT_FALSE(env_->ExceptionCheck()); in TEST_F()
2476 env_->MonitorExit(object); in TEST_F()
2477 EXPECT_TRUE(env_->ExceptionCheck()); in TEST_F()
2478 thrown_exception = env_->ExceptionOccurred(); in TEST_F()
2479 env_->ExceptionClear(); in TEST_F()
2480 EXPECT_TRUE(env_->IsInstanceOf(thrown_exception, imse_class)); in TEST_F()
2485 env_->MonitorEnter(nullptr); in TEST_F()
2487 env_->MonitorExit(nullptr); in TEST_F()
2501 env_->MonitorEnter(jobj_); in TEST_F()
2502 EXPECT_FALSE(env_->ExceptionCheck()); in TEST_F()
2505 env_->CallNonvirtualVoidMethod(jobj_, jklass_, jmethod_); in TEST_F()
2522 env_->CallNonvirtualVoidMethod(jobj_, jklass_, jmethod_); in TEST_F()
2553 jclass object_class = env_->FindClass("java/lang/Object"); in TEST_F()
2555 jobject object = env_->AllocObject(object_class); in TEST_F()
2557 global_ref = env_->NewGlobalRef(object); in TEST_F()
2561 env_->MonitorEnter(global_ref); in TEST_F()
2562 ASSERT_TRUE(IsLocked(env_, global_ref)); in TEST_F()
2567 jint attach_result = vm_->AttachCurrentThread(&env_, nullptr); in TEST_F()
2571 ASSERT_FALSE(IsLocked(env_, global_ref)); in TEST_F()
2574 env_->DeleteGlobalRef(global_ref); in TEST_F()
2667 memcpy(&env_override, env_->functions, sizeof(JNINativeInterface)); in TEST_F()
2669 gOriginalEnv = env_->functions; in TEST_F()
2673 jclass local = env_->FindClass("java/lang/Object"); in TEST_F()
2679 jobject global = env_->NewGlobalRef(local); in TEST_F()
2681 env_->DeleteGlobalRef(global); in TEST_F()
2686 jobject global2 = env_->NewGlobalRef(local); in TEST_F()
2688 env_->DeleteGlobalRef(global2); in TEST_F()
2709 reinterpret_cast<void*>(env_)); in TEST_F()