Hi Plasmates, this week I spent some thoughts on how we can do something like Xvfb with Wayland. The reasoning is simple: we need to run our test cases also on Wayland and not just on X11. Currently something like this doesn't really exist so we might need to write it. I have a few ideas how it could be done and want to get a discussion started on that.
== Option 1: "Kvfb" based on KWayland == A very minimalistic wayland compositor gets written with KWayland which "renders". The server would be comparable minimal to Xvfb, that is it doesn't have a window manager, it could only map surfaces, there is no policy how to pass input events, etc. Pro: once KWayland is in frameworks we can use that easily in all frameworks and applications. Con: without the policies of a window manager also pretty useless for anything more complex than showing a window. Xvfb without a window manager is also useless. == Option 2: Make KWin's test framework available as a library == KWin's internal test framework is pretty neat. It starts a new KWin instance in each run, can create Wayland and X11 windows. Has full introspection on those windows, can fake input events, etc. etc. This would need to be wrapped in a nice library so that it doesn't expose the changing KWin internals. It could allow to e.g. verify in plasmashell that a Panel is created on the compositor with the window type Panel, that the struts are set properly. It could be used to verify the actual positions of the opened windows when clicking panels. And in addition one could do reference screenshots. As a nice side effect it would not only test the tested code, but also KWin. Pro: very powerful Con: in process and requires KWin's QPA plugin. No chance to run the tests on X11, we are not able to catch problems in Qt's xcb and wayland plugins. Cannot be used in Frameworks/Applications. == Option 3: A virtual framebuffer server based on KWin == This is a combination of Option 1 and Option 2: we build a dedicated test server on top of KWin's test framework and provide a library to interact with it. The test server is a dedicated process, such we don't have the in-process problem of Option 2. The tests could use the normal QPA plugin - in fact could even be run twice: once on Wayland and once on X11. To make use of the full power of KWin we would need a library to interact with the test server. E.g. we need to be able to fake input events, we need to be able to fake screen changes and we want the introspection on the created windows. The library part and the test server could communicate through DBus. Thus we would have a kind of debug dbus interface in the server exposing all the windows with all their properties. On the server side that's not really a complex task as we have most things anyway exposed as properties. Pros: very powerful, allows both X11 and Wayland for testing Con: most complex architecture to implement. Cannot be used in Frameworks/ Applications. --- So what do you think? What do you need for testing from the test windowing system? Which option should we go for? I'm not telling you my personal opinion on what's best, don't want to influence you. Cheers Martin
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ Plasma-devel mailing list Plasma-devel@kde.org https://mail.kde.org/mailman/listinfo/plasma-devel