]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
throwit.java: New file.
authorTom Tromey <tromey@cygnus.com>
Wed, 16 Feb 2000 22:39:36 +0000 (22:39 +0000)
committerTom Tromey <tromey@gcc.gnu.org>
Wed, 16 Feb 2000 22:39:36 +0000 (22:39 +0000)
* libjava.jni/throwit.java: New file.
* libjava.jni/throwit.c: New file.
* libjava.jni/throwit.out: New file.

From-SVN: r32016

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

index 0a70d71b4ef143a3f330e4519febb61ef1fa4dd6..44d9a6df4ff4a1adb3fecd7136139885b6802092 100644 (file)
@@ -1,3 +1,9 @@
+2000-02-16  Tom Tromey  <tromey@cygnus.com>
+
+       * libjava.jni/throwit.java: New file.
+       * libjava.jni/throwit.c: New file.
+       * libjava.jni/throwit.out: New file.
+
 2000-02-15  Tom Tromey  <tromey@cygnus.com>
 
        * libjava.jni/findclass.java: New file
diff --git a/libjava/testsuite/libjava.jni/throwit.c b/libjava/testsuite/libjava.jni/throwit.c
new file mode 100644 (file)
index 0000000..0b02459
--- /dev/null
@@ -0,0 +1,25 @@
+#include <stdlib.h>
+#include <throwit.h>
+
+void
+Java_throwit_throwit (JNIEnv *env, jclass klass, jstring name,
+                     jboolean is_new)
+{
+  const char *buf = (*env)->GetStringUTFChars (env, name, NULL);
+  jclass k = (*env)->FindClass (env, buf);
+  (*env)->ReleaseStringUTFChars (env, name, buf);
+
+  if (k == NULL || (*env)->ExceptionCheck (env))
+    return;
+
+  if (is_new)
+    (*env)->ThrowNew (env, k, "the word is zardoz");
+  else
+    {
+      jmethodID id = (*env)->GetMethodID (env, k, "<init>",
+                                         "(Ljava.lang.String;)V");
+      jstring z = (*env)->NewStringUTF (env, "zardoz is the word");
+      jobject obj = (*env)->NewObject (env, k, id, z);
+      (*env)->Throw (env, obj);
+    }
+}
diff --git a/libjava/testsuite/libjava.jni/throwit.java b/libjava/testsuite/libjava.jni/throwit.java
new file mode 100644 (file)
index 0000000..459622d
--- /dev/null
@@ -0,0 +1,33 @@
+// Test to see if throw works.
+
+public class throwit
+{
+  static
+  {
+    System.loadLibrary ("throwit");
+  }
+
+  public static native void throwit (String name, boolean is_new);
+
+  public static void main (String[] args)
+  {
+    try
+      {
+       throwit ("java/lang/UnknownError", false);
+      }
+    catch (Throwable x)
+      {
+       System.out.println (x.getClass ());
+       System.out.println (x.getMessage ());
+      }
+    try
+      {
+       throwit ("java/lang/Throwable", true);
+      }
+    catch (Throwable x)
+      {
+       System.out.println (x.getClass ());
+       System.out.println (x.getMessage ());
+      }
+  }
+}
diff --git a/libjava/testsuite/libjava.jni/throwit.out b/libjava/testsuite/libjava.jni/throwit.out
new file mode 100644 (file)
index 0000000..8c75e99
--- /dev/null
@@ -0,0 +1,4 @@
+class java.lang.UnknownError
+the word is zardoz
+class java.lang.Throwable
+zardoz is the word