OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libjava/] [testsuite/] [libjava.lang/] [InterfaceDispatch.java] - Rev 769

Go to most recent revision | Compare with Previous | Blame | View Log

/* Test interface dispatch, type checking (instanceof), and casting. */
 
interface IA
{
  String a();
}
 
interface IB extends IA
{
  String b();
}
 
interface IC extends IB
{
  void c();
  int d();
  IB e(int i);
}
 
interface ID
{
  String z();
  String a();  
}
 
class CA
{
  String a()
  {
    return "CA a()";
  }
}
 
class CB implements IB
{
  public String a()
  {
    return "CB a()";
  }
 
  public String b()
  {
    return "CB b()";  
  }
}
 
class CC extends CB
{
  public int d()
  {
    return 99;
  }
}
 
class CD extends CC implements IC
{
  public String a()
  {
    return "CD a()";
  }
 
  public void c()
  {
    System.out.println("CD c()");
  }
 
  public int d()
  {
    return 6;
  }
 
  public IB e(int i)
  {
    if (i == 1)
      return new CB();
    else
      return new CD();
  }
}
 
class CE extends CB implements IB, ID
{
  public String a()
  {
    return ("CE a()");
  }
 
  public String b()
  {
    return ("CE b()");
  }
 
  public String z()
  {
    return("CE z()");  
  }
}
 
 
public class InterfaceDispatch
{
  public static void main(String args[])
  {
    new InterfaceDispatch();
  }
 
  public InterfaceDispatch()
  {
    /* _Jv_InstanceOf */
 
    /* Object instanceof CLASS */
    Object obj = new CA();
 
    if (obj instanceof CA)
      {
        System.out.println ("ok 1");
      }
    else
      {
        System.out.println ("FAIL 1");
      }
 
    obj = new CD();
 
    if (!(obj instanceof CA))
      {
        System.out.println ("ok 2a");
      }
    else
      {
        System.out.println ("FAIL 2a");
      }
 
    if (obj instanceof CB)
      {
        System.out.println ("ok 2b");
      }
    else
      {
        System.out.println ("FAIL 2b");
      }
 
 
    /* Object instanceof INTERFACE */
    obj = new CB();
 
    if (!(obj instanceof IC))
      {
        System.out.println("ok 3");
      }
    else
      {
        System.out.println ("FAIL 3");
      }
 
    if (obj instanceof IB)
      {
        System.out.println("ok 4");
      }
    else
      {
        System.out.println ("FAIL 4");
      }
 
    /* InterfaceRef instanceof INTERFACE */
 
    IA ia = new CB();
 
    if (ia instanceof IB)
      {
        System.out.println("ok 5");
      }
    else
      {
        System.out.println ("FAIL 5");
      }
 
 
    if (!(ia instanceof IC))
      {
        System.out.println("ok 6");
      }
    else
      {
        System.out.println ("FAIL 6");
      }
 
    /* InterfaceRef instanceof CLASS */
 
    if (ia instanceof CB)
      {
        System.out.println("ok 7");
      }
    else
      {
        System.out.println ("FAIL 7");
      }
 
 
    if (!(ia instanceof CD))
      {
        System.out.println("ok 8");
      }
    else
      {
        System.out.println ("FAIL 8");
      }    
 
 
    /* _Jv_CheckCast */
    Object obj_ca = new CA();
    Object obj_cc = new CC();    
 
    IA ia2;
 
    try
      {
        ia2 = (IA) obj_cc;
        System.out.println("ok 9");
      }
    catch (ClassCastException x)
      {
        System.out.println("FAIL 9");
      }
 
    CD cd;
 
    try
      {
        cd = (CD) obj_ca;
        System.out.println("FAIL 10");
      }
    catch (ClassCastException x)
      {
        System.out.println("ok 10");
      }
 
    IA ia3;
 
    try
      {
        ia3 = (IB) obj_ca;
        System.out.println("FAIL 11");
      }
    catch (ClassCastException x)
      {
        System.out.println("ok 11");
      }
 
    /* _Jv_LookupInterfaceMethod */
    Object obj_cb = new CB();
 
    IB ib = (IB) obj_cb;
    ib.b();
    if (ib.a().equalsIgnoreCase("CB a()"))
      System.out.println("ok 12");
    else
      System.out.println("FAIL 12");
 
    IC ic = new CD();
    if (ic.a().equalsIgnoreCase("CD a()"))
      System.out.println("ok 13");
    else
      System.out.println("FAIL 13");
 
    if (ic.d() == 6)
      System.out.println("ok 14");
    else
      System.out.println("FAIL 14");
 
    Object ce = new CE();
 
    ib = (IB) ce;
    ID id = (ID) ce;
 
    if (ib.b().equals("CE b()") && id.a().equals("CE a()"))
      System.out.println("ok 15");
    else
      System.out.println("FAIL 15");
 
    String t = ((ID)ce).z();
 
    if (t.equalsIgnoreCase("CE z()"))
      System.out.println("ok 16");
    else
      System.out.println("FAIL 16");
 
    /* Array types */
 
    Object[] obj_a = new CC[10];
    try
      {
        CB[] ca_a = (CB[]) obj_a;
        System.out.println("ok 17");
      }
    catch (ClassCastException x)
      {
        System.out.println("FAIL 17");
      }
 
    if (obj_a instanceof IB[])
      {
        System.out.println("ok 18");      
      }
    else
      {
        System.out.println("FAIL 18");      
      }
 
    IB[] ib_a = new CD[5];
    try 
      {
        CD[] cd_a = (CD[]) ib_a;
        System.out.println("ok 19");
      }
    catch (ClassCastException x)
      {
        System.out.println("FAIL 19");
      }
 
    CA[] ca_a;
 
    try 
      {
        ca_a = (CA[]) ib_a;
        System.out.println("FAIL 20");
      }
    catch (ClassCastException x)
      {
        System.out.println("ok 20");
      }
 
 
    /* Primitive types */
 
    short[] short_a = new short[100];
 
    try
      {
        obj = short_a;
        System.out.println("ok 21");
      }
    catch (ClassCastException x)
      {
        System.out.println("FAIL 21");      
      }
 
    try
      {
        short[] short_b = (short[]) obj;
        System.out.println("ok 22");
      }
    catch (ClassCastException x)
      {
        System.out.println("FAIL 22");      
      }
 
    int[] short_b;
 
    try
      {
        short_b = (int[]) obj;
        System.out.println("FAIL 23");
      }
    catch (ClassCastException x)
      {
        System.out.println("ok 23");      
      }
 
    Object obj1 = new int[25];
 
    if (obj1 instanceof short[])
      {
        System.out.println("FAIL 24");      
      }
    else
      {
        System.out.println("ok 24");
      }
 
    if (obj1 instanceof int[])
      {
        System.out.println("ok 25");
      }
    else
      {
        System.out.println("FAIL 25");
      }
 
    /* null assignment */
 
    CA obj_ca2 = null;
 
    if (obj_ca2 instanceof CA)
      {
        System.out.println("FAIL 26");        
      }
    else
      {
        System.out.println("ok 26");
      }
  }  
}
 

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.