On Mon, Sep 16, 2013 at 06:07:33PM +0200, Paolo Bonzini wrote: > Il 16/09/2013 18:01, Michael S. Tsirkin ha scritto: > > On Mon, Sep 16, 2013 at 05:56:56PM +0200, Paolo Bonzini wrote: > >> Il 16/09/2013 17:48, Michael S. Tsirkin ha scritto: > >>> http://sweng.the-davies.net/Home/rustys-api-design-manifesto > >>> > >>> Even then: it will be at best > >>> "5. Do it right or it will always break at runtime." > >>> > >>> We need to switch to APIs at > >>> "9. The compiler/linker won't let you get it wrong." > >> > >> We definitely can get at least to "make check won't let you get it > >> wrong", which is somewhere in the middle. > >> > >> Paolo > > > > We can't. > > make check just runs unit tests. > > So it can catch changes, but it can not catch bugs in new > > interfaces. > > We can have "make check" run QEMU once for each board, which would trap > things that will always break at runtime such as a misspelled property. > Similarly, we could have tests that try to instantiate every device, > even if they do not do anything with the guest-visible device. Such > dummy tests can catch bugs in interface changes.
They won't catch bugs for properties that 1. change after device is instanciated 2. are accessed after device is instanciated > I look forward to discussing the future of qos and qtest at KVM Forum... :) > > Paolo This is not the topic I started really. Testing isn't a replacement for type safety. C is a compiled language for a reason, qom needs a set of wrappers to get that back, strings should only be used for external interfaces. -- MST