aboutsummaryrefslogtreecommitdiff
path: root/libjava/testsuite/libjava.lang
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/testsuite/libjava.lang')
-rw-r--r--libjava/testsuite/libjava.lang/pr179.java61
-rw-r--r--libjava/testsuite/libjava.lang/pr179.out8
2 files changed, 69 insertions, 0 deletions
diff --git a/libjava/testsuite/libjava.lang/pr179.java b/libjava/testsuite/libjava.lang/pr179.java
new file mode 100644
index 0000000..ec99efc
--- /dev/null
+++ b/libjava/testsuite/libjava.lang/pr179.java
@@ -0,0 +1,61 @@
+// Extended regression test for the PR 179.
+//
+// This tests the ".class" language syntax, initialization behaviour for
+// Class.isInstance() and Class.isAssignableFrom(), and isAssignableFrom()
+// functionality in the event that an interface argument that is not
+// implemented by any loaded class is given.
+//
+// Bryce McKinlay <bryce@albatross.co.nz>
+
+class A
+{
+ static
+ {
+ System.out.println("A initialized");
+ }
+}
+
+interface IA {}
+
+class B implements IA
+{
+ static
+ {
+ System.out.println("B initialized");
+ }
+}
+
+class C
+{
+ static
+ {
+ System.out.println("C initialized");
+ }
+}
+
+interface IB {}
+
+public class pr179
+{
+ public static void main(String[] args)
+ {
+ System.out.println (A.class.isAssignableFrom (Object.class));
+ System.out.println (IB.class.isAssignableFrom (B.class));
+ System.out.println (IA.class.isAssignableFrom (B.class));
+ A a = new A();
+ System.out.println (C.class.isInstance (a));
+ C c = new C();
+ System.out.println (C.class.isInstance (c));
+ }
+}
+
+/* Expected Output:
+A initialized
+false
+B initialized
+false
+true
+C initialized
+false
+true
+*/
diff --git a/libjava/testsuite/libjava.lang/pr179.out b/libjava/testsuite/libjava.lang/pr179.out
new file mode 100644
index 0000000..3a63ad6
--- /dev/null
+++ b/libjava/testsuite/libjava.lang/pr179.out
@@ -0,0 +1,8 @@
+A initialized
+false
+B initialized
+false
+true
+C initialized
+false
+true