summaryrefslogtreecommitdiffstats
path: root/luni/src/test/native
diff options
context:
space:
mode:
authorIan Rogers <irogers@google.com>2011-06-29 17:07:54 -0700
committerBrian Carlstrom <bdc@google.com>2013-11-05 17:09:44 -0800
commita515759d83bac3e3b6bfdea20eb9576621e6596a (patch)
treed68b694fbfb9eebb69c57c4465163532402ee656 /luni/src/test/native
parent369c46ce938ac502b2d005cdc8464cd19d771de3 (diff)
downloadlibcore-a515759d83bac3e3b6bfdea20eb9576621e6596a.zip
libcore-a515759d83bac3e3b6bfdea20eb9576621e6596a.tar.gz
libcore-a515759d83bac3e3b6bfdea20eb9576621e6596a.tar.bz2
A simple set of JNI argument passing tests.
Change-Id: Ibf2051fae4b5026a4a14fcdc27be71415520d117 (cherry picked from commit cd8016c67b7f215bf374467257ede53197c44423)Conflicts:
Diffstat (limited to 'luni/src/test/native')
-rw-r--r--luni/src/test/native/dalvik_system_JniTest.cpp269
1 files changed, 269 insertions, 0 deletions
diff --git a/luni/src/test/native/dalvik_system_JniTest.cpp b/luni/src/test/native/dalvik_system_JniTest.cpp
new file mode 100644
index 0000000..14c3e1c
--- /dev/null
+++ b/luni/src/test/native/dalvik_system_JniTest.cpp
@@ -0,0 +1,269 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <jni.h>
+#include <stdlib.h> // for abort
+
+extern "C" jobject Java_dalvik_system_JniTest_returnThis(JNIEnv*, jobject obj) {
+ return obj;
+}
+
+extern "C" jclass Java_dalvik_system_JniTest_returnClass(JNIEnv*, jclass klass) {
+ return klass;
+}
+
+extern "C" jobject Java_dalvik_system_JniTest_returnObjectArgFrom16(
+ JNIEnv*, jobject, int arg_no,
+ jobject o1, jobject o2, jobject o3, jobject o4, jobject o5,
+ jobject o6, jobject o7, jobject o8, jobject o9, jobject o10,
+ jobject o11, jobject o12, jobject o13, jobject o14, jobject o15,
+ jobject o16) {
+ switch(arg_no){
+ case 0: return o1;
+ case 1: return o2;
+ case 2: return o3;
+ case 3: return o4;
+ case 4: return o5;
+ case 5: return o6;
+ case 6: return o7;
+ case 7: return o8;
+ case 8: return o9;
+ case 9: return o10;
+ case 10: return o11;
+ case 11: return o12;
+ case 12: return o13;
+ case 13: return o14;
+ case 14: return o15;
+ case 15: return o16;
+ default: abort();
+ }
+}
+
+extern "C" jboolean Java_dalvik_system_JniTest_returnBooleanArgFrom16(
+ JNIEnv*, jobject, int arg_no,
+ jboolean o1, jboolean o2, jboolean o3, jboolean o4, jboolean o5,
+ jboolean o6, jboolean o7, jboolean o8, jboolean o9, jboolean o10,
+ jboolean o11, jboolean o12, jboolean o13, jboolean o14, jboolean o15,
+ jboolean o16) {
+ switch(arg_no){
+ case 0: return o1;
+ case 1: return o2;
+ case 2: return o3;
+ case 3: return o4;
+ case 4: return o5;
+ case 5: return o6;
+ case 6: return o7;
+ case 7: return o8;
+ case 8: return o9;
+ case 9: return o10;
+ case 10: return o11;
+ case 11: return o12;
+ case 12: return o13;
+ case 13: return o14;
+ case 14: return o15;
+ case 15: return o16;
+ default: abort();
+ }
+}
+
+extern "C" jchar Java_dalvik_system_JniTest_returnCharArgFrom16(
+ JNIEnv*, jobject, int arg_no,
+ jchar o1, jchar o2, jchar o3, jchar o4, jchar o5,
+ jchar o6, jchar o7, jchar o8, jchar o9, jchar o10,
+ jchar o11, jchar o12, jchar o13, jchar o14, jchar o15,
+ jchar o16) {
+ switch(arg_no){
+ case 0: return o1;
+ case 1: return o2;
+ case 2: return o3;
+ case 3: return o4;
+ case 4: return o5;
+ case 5: return o6;
+ case 6: return o7;
+ case 7: return o8;
+ case 8: return o9;
+ case 9: return o10;
+ case 10: return o11;
+ case 11: return o12;
+ case 12: return o13;
+ case 13: return o14;
+ case 14: return o15;
+ case 15: return o16;
+ default: abort();
+ }
+}
+
+extern "C" jbyte Java_dalvik_system_JniTest_returnByteArgFrom16(
+ JNIEnv*, jobject, int arg_no,
+ jbyte o1, jbyte o2, jbyte o3, jbyte o4, jbyte o5,
+ jbyte o6, jbyte o7, jbyte o8, jbyte o9, jbyte o10,
+ jbyte o11, jbyte o12, jbyte o13, jbyte o14, jbyte o15,
+ jbyte o16) {
+ switch(arg_no){
+ case 0: return o1;
+ case 1: return o2;
+ case 2: return o3;
+ case 3: return o4;
+ case 4: return o5;
+ case 5: return o6;
+ case 6: return o7;
+ case 7: return o8;
+ case 8: return o9;
+ case 9: return o10;
+ case 10: return o11;
+ case 11: return o12;
+ case 12: return o13;
+ case 13: return o14;
+ case 14: return o15;
+ case 15: return o16;
+ default: abort();
+ }
+}
+
+extern "C" jshort Java_dalvik_system_JniTest_returnShortArgFrom16(
+ JNIEnv*, jobject, int arg_no,
+ jshort o1, jshort o2, jshort o3, jshort o4, jshort o5,
+ jshort o6, jshort o7, jshort o8, jshort o9, jshort o10,
+ jshort o11, jshort o12, jshort o13, jshort o14, jshort o15,
+ jshort o16) {
+ switch(arg_no){
+ case 0: return o1;
+ case 1: return o2;
+ case 2: return o3;
+ case 3: return o4;
+ case 4: return o5;
+ case 5: return o6;
+ case 6: return o7;
+ case 7: return o8;
+ case 8: return o9;
+ case 9: return o10;
+ case 10: return o11;
+ case 11: return o12;
+ case 12: return o13;
+ case 13: return o14;
+ case 14: return o15;
+ case 15: return o16;
+ default: abort();
+ }
+}
+
+extern "C" jint Java_dalvik_system_JniTest_returnIntArgFrom16(
+ JNIEnv*, jobject, int arg_no,
+ jint o1, jint o2, jint o3, jint o4, jint o5,
+ jint o6, jint o7, jint o8, jint o9, jint o10,
+ jint o11, jint o12, jint o13, jint o14, jint o15,
+ jint o16) {
+ switch(arg_no){
+ case 0: return o1;
+ case 1: return o2;
+ case 2: return o3;
+ case 3: return o4;
+ case 4: return o5;
+ case 5: return o6;
+ case 6: return o7;
+ case 7: return o8;
+ case 8: return o9;
+ case 9: return o10;
+ case 10: return o11;
+ case 11: return o12;
+ case 12: return o13;
+ case 13: return o14;
+ case 14: return o15;
+ case 15: return o16;
+ default: abort();
+ }
+}
+
+extern "C" jlong Java_dalvik_system_JniTest_returnLongArgFrom16(
+ JNIEnv*, jobject, int arg_no,
+ jlong o1, jlong o2, jlong o3, jlong o4, jlong o5,
+ jlong o6, jlong o7, jlong o8, jlong o9, jlong o10,
+ jlong o11, jlong o12, jlong o13, jlong o14, jlong o15,
+ jlong o16) {
+ switch(arg_no){
+ case 0: return o1;
+ case 1: return o2;
+ case 2: return o3;
+ case 3: return o4;
+ case 4: return o5;
+ case 5: return o6;
+ case 6: return o7;
+ case 7: return o8;
+ case 8: return o9;
+ case 9: return o10;
+ case 10: return o11;
+ case 11: return o12;
+ case 12: return o13;
+ case 13: return o14;
+ case 14: return o15;
+ case 15: return o16;
+ default: abort();
+ }
+}
+
+extern "C" jfloat Java_dalvik_system_JniTest_returnFloatArgFrom16(
+ JNIEnv*, jobject, int arg_no,
+ jfloat o1, jfloat o2, jfloat o3, jfloat o4, jfloat o5,
+ jfloat o6, jfloat o7, jfloat o8, jfloat o9, jfloat o10,
+ jfloat o11, jfloat o12, jfloat o13, jfloat o14, jfloat o15,
+ jfloat o16) {
+ switch(arg_no){
+ case 0: return o1;
+ case 1: return o2;
+ case 2: return o3;
+ case 3: return o4;
+ case 4: return o5;
+ case 5: return o6;
+ case 6: return o7;
+ case 7: return o8;
+ case 8: return o9;
+ case 9: return o10;
+ case 10: return o11;
+ case 11: return o12;
+ case 12: return o13;
+ case 13: return o14;
+ case 14: return o15;
+ case 15: return o16;
+ default: abort();
+ }
+}
+
+extern "C" jdouble Java_dalvik_system_JniTest_returnDoubleArgFrom16(
+ JNIEnv*, jobject, int arg_no,
+ jdouble o1, jdouble o2, jdouble o3, jdouble o4, jdouble o5,
+ jdouble o6, jdouble o7, jdouble o8, jdouble o9, jdouble o10,
+ jdouble o11, jdouble o12, jdouble o13, jdouble o14, jdouble o15,
+ jdouble o16) {
+ switch(arg_no){
+ case 0: return o1;
+ case 1: return o2;
+ case 2: return o3;
+ case 3: return o4;
+ case 4: return o5;
+ case 5: return o6;
+ case 6: return o7;
+ case 7: return o8;
+ case 8: return o9;
+ case 9: return o10;
+ case 10: return o11;
+ case 11: return o12;
+ case 12: return o13;
+ case 13: return o14;
+ case 14: return o15;
+ case 15: return o16;
+ default: abort();
+ }
+}