package org.mozilla.test;
import gnu.testlet.*;
public class ClassCast implements Testlet {
public int getExpectedPass() { return 1; }
public int getExpectedFail() { return 0; }
public int getExpectedKnownFail() { return 0; }
private interface Interface {}
class ClassA implements Interface {}
abstract class ClassB extends ClassA {}
class ClassC extends ClassB {}
static TestHarness th;
public void test(TestHarness th) {
// This test illuminates an issue where ClassB's interfaces are setup
// in the runtime before the super class has been loaded.
Object o = new ClassC();
try {
Interface iface = (Interface)o;
th.check(true);
} catch (ClassCastException e) {
th.fail("Unexpected exception: " + e);
}
}
}