@Override
    public Object clone() {
        try{
            return callParentClone();
        } catch (CloneNotSupportedException e) {
                // Super clone should never throw exception for objects that should certainly be cloneable.
            throw new Error(e);
        }
    }
@Test
    void testSimple() {
        try {
            Foo f = new Foo();
            f.clone();
            fail("Control should not get here");
        } catch (Error e) {
            assertEquals("Foo", e.getCause().getMessage());
        }
    }