Fix the "mov R1, R2; mov R2, R3" bug in jni_compiler.
Should be "mov R2, R3; mov R1, R2" instead.
Change-Id: Ie5264c3fe38486781e09f54e1e6d1fdcf7a2d4e5
diff --git a/src/jni_compiler_test.cc b/src/jni_compiler_test.cc
index 296d647..3ffc184 100644
--- a/src/jni_compiler_test.cc
+++ b/src/jni_compiler_test.cc
@@ -223,6 +223,29 @@
EXPECT_EQ(7, gJava_MyClass_fooIOO_calls);
}
+int gJava_MyClass_fooSII_calls = 0;
+jint Java_MyClass_fooSII(JNIEnv* env, jclass klass, jint x, jint y) {
+ EXPECT_EQ(1u, Thread::Current()->NumSirtReferences());
+ EXPECT_EQ(Thread::kNative, Thread::Current()->GetState());
+ EXPECT_EQ(Thread::Current()->GetJniEnv(), env);
+ EXPECT_TRUE(klass != NULL);
+ EXPECT_TRUE(env->IsInstanceOf(JniCompilerTest::jobj_, klass));
+ gJava_MyClass_fooSII_calls++;
+ return x + y;
+}
+
+
+TEST_F(JniCompilerTest, CompileAndRunStaticIntIntMethod) {
+ SetupForTest(true, "fooSII",
+ "(II)I",
+ reinterpret_cast<void*>(&Java_MyClass_fooSII));
+
+ EXPECT_EQ(0, gJava_MyClass_fooSII_calls);
+ jint result = env_->CallStaticIntMethod(jklass_, jmethod_, 20, 30);
+ EXPECT_EQ(50, result);
+ EXPECT_EQ(1, gJava_MyClass_fooSII_calls);
+}
+
int gJava_MyClass_fooSIOO_calls = 0;
jobject Java_MyClass_fooSIOO(JNIEnv* env, jclass klass, jint x, jobject y,
jobject z) {