This is the mail archive of the java-patches@sourceware.cygnus.com mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

PATCH: New test case for PR java.lang/258:


I'm checking this in:

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.

Index: testsuite//libjava.lang/Class_1.java
===================================================================
RCS file: Class_1.java
diff -N Class_1.java
--- /dev/null	Tue May  5 13:32:27 1998
+++ Class_1.java	Tue Jun 13 16:41:40 2000
@@ -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);
+  }
+}
Index: testsuite//libjava.lang/Class_1.out
===================================================================
RCS file: Class_1.out
diff -N Class_1.out
--- /dev/null	Tue May  5 13:32:27 1998
+++ Class_1.out	Tue Jun 13 16:41:40 2000
@@ -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





Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]