diff options
author | Anthony Green <green@redhat.com> | 2005-02-14 14:57:37 +0000 |
---|---|---|
committer | Anthony Green <green@gcc.gnu.org> | 2005-02-14 14:57:37 +0000 |
commit | d633cfe524a361b4a5d1845e9b7fb78c2d813d7c (patch) | |
tree | 8f2311990fa1769a62f318958162b80d0cdcfcd5 /libjava | |
parent | 92d2b330de38224e6b6de699baa5ee3436c2dbb6 (diff) | |
download | gcc-d633cfe524a361b4a5d1845e9b7fb78c2d813d7c.tar.gz |
re PR libgcj/18116 (JNI uses dot instead of slash as the package separator)
2005-02-14 Anthony Green <green@redhat.com>
PR libgcj/18116
* testsuite/libjava.jni/PR18116.c: New file.
* testsuite/libjava.jni/PR18116.java: New file.
* testsuite/libjava.jni/PR18116.out: New file.
From-SVN: r95014
Diffstat (limited to 'libjava')
-rw-r--r-- | libjava/ChangeLog | 8 | ||||
-rw-r--r-- | libjava/testsuite/libjava.jni/PR18116.c | 35 | ||||
-rw-r--r-- | libjava/testsuite/libjava.jni/PR18116.java | 16 | ||||
-rw-r--r-- | libjava/testsuite/libjava.jni/PR18116.out | 1 |
4 files changed, 60 insertions, 0 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index b47469f343d..1e727762f7a 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,5 +1,13 @@ +2005-02-14 Anthony Green <green@redhat.com> + + PR libgcj/18116 + * testsuite/libjava.jni/PR18116.c: New file. + * testsuite/libjava.jni/PR18116.java: New file. + * testsuite/libjava.jni/PR18116.out: New file. + 2005-02-13 Anthony Green <green@redhat.com> + PR libgcj/18116 * jni.cc (nathash_add): Don't strdup the method signature. (_Jv_JNI_RegisterNatives): Convert the slashes to dots in the method signature. diff --git a/libjava/testsuite/libjava.jni/PR18116.c b/libjava/testsuite/libjava.jni/PR18116.c new file mode 100644 index 00000000000..bcd14331e61 --- /dev/null +++ b/libjava/testsuite/libjava.jni/PR18116.c @@ -0,0 +1,35 @@ +#include <stdlib.h> +#include <assert.h> +#include <PR18116.h> + +// The purpose of this test is to ensure that signatures with non-top +// level class arguments work. + +static jint +some_random_name (JNIEnv *env, jclass k, jobject v) +{ + return 555; +} + +JNIEXPORT jint JNICALL +JNI_OnLoad (JavaVM *vm, void *nothing) +{ + JNIEnv *env; + JNINativeMethod meth; + jclass k; + jint r; + + r = (*vm)->GetEnv (vm, (void **) &env, JNI_VERSION_1_2); + assert (r == JNI_OK); + k = (*env)->FindClass (env, "PR18116"); + assert (k != NULL); + + meth.name = "doit"; + meth.signature = "(Ljava/lang/String;)I"; + meth.fnPtr = some_random_name; + + r = (*env)->RegisterNatives (env, k, &meth, 1); + assert (r == JNI_OK); + + return JNI_VERSION_1_2; +} diff --git a/libjava/testsuite/libjava.jni/PR18116.java b/libjava/testsuite/libjava.jni/PR18116.java new file mode 100644 index 00000000000..d582132b677 --- /dev/null +++ b/libjava/testsuite/libjava.jni/PR18116.java @@ -0,0 +1,16 @@ +// PR18116.java - Test RegisterNatives with more complex signatures. + +public class PR18116 +{ + static + { + System.loadLibrary ("PR18116"); + } + + public static native int doit (java.lang.String s); + + public static void main (String[] args) + { + System.out.println (doit ("Hello World!")); + } +} diff --git a/libjava/testsuite/libjava.jni/PR18116.out b/libjava/testsuite/libjava.jni/PR18116.out new file mode 100644 index 00000000000..3749383ded2 --- /dev/null +++ b/libjava/testsuite/libjava.jni/PR18116.out @@ -0,0 +1 @@ +555 |