OSDN Git Service

2005-02-14 Anthony Green <green@redhat.com>
authorgreen <green@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 14 Feb 2005 14:57:37 +0000 (14:57 +0000)
committergreen <green@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 14 Feb 2005 14:57:37 +0000 (14:57 +0000)
        PR libgcj/18116
        * testsuite/libjava.jni/PR18116.c: New file.
        * testsuite/libjava.jni/PR18116.java: New file.
        * testsuite/libjava.jni/PR18116.out: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@95014 138bc75d-0d04-0410-961f-82ee72b054a4

libjava/ChangeLog
libjava/testsuite/libjava.jni/PR18116.c [new file with mode: 0644]
libjava/testsuite/libjava.jni/PR18116.java [new file with mode: 0644]
libjava/testsuite/libjava.jni/PR18116.out [new file with mode: 0644]

index b47469f..1e72776 100644 (file)
@@ -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 (file)
index 0000000..bcd1433
--- /dev/null
@@ -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 (file)
index 0000000..d582132
--- /dev/null
@@ -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 (file)
index 0000000..3749383
--- /dev/null
@@ -0,0 +1 @@
+555