aboutsummaryrefslogtreecommitdiff
path: root/libjava/testsuite/libjava.jni
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/testsuite/libjava.jni')
-rw-r--r--libjava/testsuite/libjava.jni/noclass.c9
-rw-r--r--libjava/testsuite/libjava.jni/noclass.java18
-rw-r--r--libjava/testsuite/libjava.jni/noclass.out1
3 files changed, 28 insertions, 0 deletions
diff --git a/libjava/testsuite/libjava.jni/noclass.c b/libjava/testsuite/libjava.jni/noclass.c
new file mode 100644
index 0000000..5f2caf4
--- /dev/null
+++ b/libjava/testsuite/libjava.jni/noclass.c
@@ -0,0 +1,9 @@
+#include <noclass.h>
+
+void
+Java_noclass_find_1it (JNIEnv *env, jclass k)
+{
+ /* We cause an exception by asking for a class we know does not
+ exist. */
+ k = (*env)->FindClass (env, "java/lang/Sarcophagus");
+}
diff --git a/libjava/testsuite/libjava.jni/noclass.java b/libjava/testsuite/libjava.jni/noclass.java
new file mode 100644
index 0000000..cfa1178
--- /dev/null
+++ b/libjava/testsuite/libjava.jni/noclass.java
@@ -0,0 +1,18 @@
+// Test to make sure JNI implementation catches exceptions.
+
+public class noclass
+{
+ static
+ {
+ System.loadLibrary ("noclass");
+ }
+
+ public static native void find_it ();
+
+ public static void main (String[] args)
+ {
+ find_it ();
+ // If find_it() causes a crash, we won't be running this next line.
+ System.out.println ("Ok");
+ }
+}
diff --git a/libjava/testsuite/libjava.jni/noclass.out b/libjava/testsuite/libjava.jni/noclass.out
new file mode 100644
index 0000000..7326d96
--- /dev/null
+++ b/libjava/testsuite/libjava.jni/noclass.out
@@ -0,0 +1 @@
+Ok