From 7be83025b62ab499ed8b2b59521f8fbe8e2b13ab Mon Sep 17 00:00:00 2001 From: Jeff Hao Date: Thu, 28 May 2015 14:32:07 -0700 Subject: [PATCH] Add JNI String. test for global and weak global refs. Test for change: https://googleplex-android-review.git.corp.google.com/#/c/698642/ Change-Id: I3e1182d42f9e24448d8616000de58ebfe1e50fb8 --- test/004-JniTest/jni_test.cc | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/test/004-JniTest/jni_test.cc b/test/004-JniTest/jni_test.cc index 1ec0cf2d4..71a2b2ddd 100644 --- a/test/004-JniTest/jni_test.cc +++ b/test/004-JniTest/jni_test.cc @@ -604,4 +604,20 @@ extern "C" JNIEXPORT void JNICALL Java_Main_testNewStringObject(JNIEnv* env, jcl args4[0].l = string_arg; env->CallVoidMethodA(s3, mid3, args3); env->CallNonvirtualVoidMethodA(s4, c, mid4, args4); + + // Test with global and weak global references + jstring s5 = reinterpret_cast(env->AllocObject(c)); + assert(s5 != nullptr); + s5 = reinterpret_cast(env->NewGlobalRef(s5)); + jstring s6 = reinterpret_cast(env->AllocObject(c)); + assert(s6 != nullptr); + s6 = reinterpret_cast(env->NewWeakGlobalRef(s6)); + + env->CallVoidMethod(s5, mid1); + env->CallNonvirtualVoidMethod(s6, c, mid2, byte_array); + assert(env->GetStringLength(s5) == 0); + assert(env->GetStringLength(s6) == byte_array_length); + const char* chars6 = env->GetStringUTFChars(s6, nullptr); + assert(strcmp(test_array, chars6) == 0); + env->ReleaseStringUTFChars(s6, chars6); } -- 2.11.0