Test for PR java.lang/258:
authorWarren Levy <warrenl@cygnus.com>
Tue, 13 Jun 2000 23:44:05 +0000 (23:44 +0000)
committerWarren Levy <warrenl@gcc.gnu.org>
Tue, 13 Jun 2000 23:44:05 +0000 (23:44 +0000)
* libjava.lang/Class_1.java: New file.
* libjava.lang/Class_1.out: New file.

From-SVN: r34532

libjava/testsuite/ChangeLog
libjava/testsuite/libjava.lang/Class_1.java [new file with mode: 0644]
libjava/testsuite/libjava.lang/Class_1.out [new file with mode: 0644]

index c8b383ab36c15ecc8a1d3a99377a31244361c3aa..317ddfb28b274aa7f78c1d5581920d084aa7503f 100644 (file)
@@ -1,3 +1,9 @@
+2000-06-13  Warren Levy  <warrenl@cygnus.com>
+
+       Test for PR java.lang/258:
+       * libjava.lang/Class_1.java: New file.
+       * libjava.lang/Class_1.out: New file.
+
 2000-05-29  Bryce McKinlay  <bryce@albatross.co.nz>
 
        * libjava.lang/PR242.java: New file. PR gcj/242.
diff --git a/libjava/testsuite/libjava.lang/Class_1.java b/libjava/testsuite/libjava.lang/Class_1.java
new file mode 100644 (file)
index 0000000..f2156eb
--- /dev/null
@@ -0,0 +1,49 @@
+class C {}
+class D extends C implements I {}
+interface I {}
+interface J extends I {}
+
+public class Class_1
+{
+  static void printIsAssignableFrom(Class a, Class b, boolean c)
+    {
+      // The field 'c' can be viewed to see the expected value.
+      System.out.println(a.isAssignableFrom(b));
+    }
+
+  public static void main (String arg[])
+  {
+    System.out.println("Testing class `Class_1'...");
+    printIsAssignableFrom(C.class, Object.class, false);
+    printIsAssignableFrom(C.class, C.class, true);
+    printIsAssignableFrom(C.class, D.class, true);
+    printIsAssignableFrom(D.class, C.class, false);
+
+    printIsAssignableFrom(Object.class, int[].class, true);
+    printIsAssignableFrom(int[].class, int[].class, true);
+    printIsAssignableFrom(C[].class, D.class, false);
+    printIsAssignableFrom(C[].class, D[].class, true);
+    // Known compiler limitation prevents next case from compiling.
+    // printIsAssignableFrom(C[].class, C[][].class, false);
+    System.out.println("printIsAssignableFrom(C[].class, C[][].class, false);" +
+      " case uncompilable due to known compiler limitation.");
+
+    printIsAssignableFrom(Object.class, I.class, true);
+    printIsAssignableFrom(I.class, I.class, true);
+    printIsAssignableFrom(D.class, I.class, false);
+    printIsAssignableFrom(I.class, D.class, true);
+
+    printIsAssignableFrom(D.class, J.class, false);
+    printIsAssignableFrom(J.class, D.class, false);
+
+    printIsAssignableFrom(I.class, J.class, true);
+    printIsAssignableFrom(J.class, J.class, true);
+    printIsAssignableFrom(J.class, I.class, false);
+
+    // Returns true iff both Class objects are equal.
+    printIsAssignableFrom(long.class, long.class, true);
+
+    // Does not work for primitive types in general.
+    printIsAssignableFrom(long.class, int.class, false);
+  }
+}
diff --git a/libjava/testsuite/libjava.lang/Class_1.out b/libjava/testsuite/libjava.lang/Class_1.out
new file mode 100644 (file)
index 0000000..6a5863a
--- /dev/null
@@ -0,0 +1,21 @@
+Testing class `Class_1'...
+false
+true
+true
+false
+true
+true
+false
+true
+printIsAssignableFrom(C[].class, C[][].class, false); case uncompilable due to known compiler limitation.
+true
+true
+false
+true
+false
+false
+true
+true
+false
+true
+false