I am trying to write some tests that provoke errors in libwayland, but it doesn't seem to me like the existing test suite provides a mechanism to create specific event orderings that are allowed but not guaranteed by the asynchrony of the protocol. Is that correct? It looks to me like the tests in the test suite that involve a client and server all fork the client and allow it and server to run asynchronously without a way to impose any ordering restriction, but it's hard to tell. If there is a mechanism to use to get specific event orderings, where is it?
I could simulate one side (the side that doesn't encounter the error) by directly marshalling the messages it would send into the wire to the other side. That might be a suitable unit test for after the error is proven to exist in the field, but it doesn't (conclusively) prove that the error can exist in the field because of its reliance on simulation tactics. That's my fallback - but is there a better way? Thanks, Jon