Testing the decoding of JObject.
Change-Id: Ie539275592fbb7b648f9ce5e4a619aecc576768c
diff --git a/src/jni_compiler_test.cc b/src/jni_compiler_test.cc
index 254fbdf..3ef970e 100644
--- a/src/jni_compiler_test.cc
+++ b/src/jni_compiler_test.cc
@@ -447,4 +447,16 @@
EXPECT_EQ(55, result);
}
+jobject Java_MyClass_fooL(JNIEnv* env, jobject thisObj, jobject x) {
+ return env->NewGlobalRef(x);
+}
+
+TEST_F(JniCompilerTest, DecodeJObject) {
+ SetupForTest(false, "fooL", "(Ljava/lang/Object;)Ljava/lang/Object;",
+ reinterpret_cast<void*>(&Java_MyClass_fooL));
+ jobject result = env_->CallNonvirtualObjectMethod(jobj_, jklass_, jmethod_, jobj_);
+ EXPECT_EQ(JNILocalRefType, env_->GetObjectRefType(result));
+ EXPECT_TRUE(env_->IsSameObject(result, jobj_));
+}
+
} // namespace art
diff --git a/test/MyClassNatives/MyClassNatives.java b/test/MyClassNatives/MyClassNatives.java
index 0716bfa..f8b81d4 100644
--- a/test/MyClassNatives/MyClassNatives.java
+++ b/test/MyClassNatives/MyClassNatives.java
@@ -5,6 +5,7 @@
native void foo();
native int fooI(int x);
native int fooII(int x, int y);
+ native Object fooL(Object x);
native double fooDD(double x, double y);
native Object fooIOO(int x, Object y, Object z);
static native Object fooSIOO(int x, Object y, Object z);