Will is a user on cybre.space. You can follow them or interact with them if you have an account anywhere in the fediverse.

@emersion wleird looks useful, but I always thought such a thing should be called Wayland Test Fuzzer. It has a nice abbreviation.

@wmww Ahah, nice! Writing a Wayland protocol fuzzer is on my todo-list, I'll definitely consider that name when I get to it :)
(wleird is for manual testing, not really fuzzing)

@emersion if you're looking into automatic Wayland tests, you might want to check out WLCS (github.com/MirServer/wlcs). We've been building it for Mir, but designing it for use with other compositors as well. It's not quite a Fuzzer yet either, as it mainly sticks to the basics now, but does a pretty good job of covering them.

@emersion To use WLCS with wlroots, you'd just have to implement the hooks into the compositor for things like creating and moving a fake pointer. This is done for Mir here: github.com/MirServer/wlcs/blob

@wmww Hmm. What IPC are you using between test clients and the compositor?

@emersion no IPC, the tests run the compositor in-process. Thus we don't need the added complexity of a protocol extension or anything.

@emersion For every test it spins up a new instance of the compositor and tears it down at the end, so you don't have to worry about one test messing with compositor state and that effecting a subsequent test.

@emersion to be clear, the Wayland calls still happen normally, the client and compositor just happen to be the same process.

Will @wmww

@emersion which means tests can do stuff like creating a mock pointer, or move top-level surfaces around with just normal function calls.