def METHOD_NAME(caplog):
    class T(m.Product):
        x = m.Bit
        y = m.Bit
    class U(m.Product):
        x = T
        y = T
    class Foo(m.Circuit):
        io = m.IO(A=m.Out(U), B=m.In(T), C=m.Out(m.Bit))
        io.A.x @= io.B
        io.C @= 0
    with pytest.raises(Exception) as e:
        m.compile("build/Foo", Foo)
    assert caplog.messages[0] == "Foo.A not driven"
    assert caplog.messages[1] == "Foo.A"
    assert caplog.messages[2] == "    Foo.A.x: Connected"
    assert caplog.messages[3] == "    Foo.A.y: Unconnected"