Test arg passing for arraycopy.

Change-Id: Id0a6b6043b9604aa3bb077af0ed858be9bfa5407
diff --git a/src/jni_compiler_test.cc b/src/jni_compiler_test.cc
index 19f695d..87e6085 100644
--- a/src/jni_compiler_test.cc
+++ b/src/jni_compiler_test.cc
@@ -474,7 +474,7 @@
   return env->NewGlobalRef(x);
 }
 
-TEST_F(JniCompilerTest, DecodeJObject) {
+TEST_F(JniCompilerTest, ReturnGlobalRef) {
   SetupForTest(false, "fooO", "(Ljava/lang/Object;)Ljava/lang/Object;",
                reinterpret_cast<void*>(&Java_MyClass_fooO));
   jobject result = env_->CallNonvirtualObjectMethod(jobj_, jklass_, jmethod_, jobj_);
@@ -482,4 +482,20 @@
   EXPECT_TRUE(env_->IsSameObject(result, jobj_));
 }
 
+void my_arraycopy(JNIEnv* env, jclass klass, jobject src, jint src_pos, jobject dst, jint dst_pos, jint length) {
+  EXPECT_TRUE(env->IsSameObject(JniCompilerTest::jklass_, klass));
+  EXPECT_TRUE(env->IsSameObject(JniCompilerTest::jklass_, dst));
+  EXPECT_TRUE(env->IsSameObject(JniCompilerTest::jklass_, src));
+  EXPECT_TRUE(env->IsSameObject(JniCompilerTest::jklass_, src));
+  EXPECT_EQ(1234, src_pos);
+  EXPECT_EQ(5678, dst_pos);
+  EXPECT_EQ(9876, length);
+}
+
+TEST_F(JniCompilerTest, JavaLangSystemArrayCopy) {
+  SetupForTest(true, "arraycopy", "(Ljava/lang/Object;ILjava/lang/Object;II)V",
+               reinterpret_cast<void*>(&my_arraycopy));
+  env_->CallStaticVoidMethod(jklass_, jmethod_, jklass_, 1234, jklass_, 5678, 9876);
+}
+
 }  // namespace art