Skip to content
  • Martin Flöser's avatar
    [autotest] Welcome to integration testing KWin · 7fed20f1
    Martin Flöser authored
    This is the beginning of a new testing era for KWin: finally we are
    able to test against a running KWin. This works by making use of the
    new virtual framebuffer backend for Wayland. It starts a specific
    Application subclass which is mostly a fork of ApplicationWayland.
    
    The individual tests are able to influence the socket name and the
    size of the virtual screen. This is supposed to be done in
    initTestCase. To know when KWin is fully started one can use the
    workspaceCreated signal of KWin::Application. KWin is not started in
    another process, but the kwin library is used, so the test has pretty
    much full introspection to everything going on inside KWin. It can
    access the Workspace, WaylandServer, fake input events through
    InputRedirection and so on.
    
    Once the test KWin is running it's possible to connect to it using
    KWayland::Client library. This allows to introspect the Workspace
    to see whether all worked as expected (e.g. correct stacking order,
    active window and so on).
    
    This first autotest is mostly meant to illustrate how to setup a
    test and how one can use KWayland::Client to interact with the mock
    KWin. For more tests it is suggested to move the connections to the
    Wayland server in the init() and cleanup() methods.
    
    The change also affects the qpa plugin: the specific check to only
    run in binaries called kwin_wayland doesn't hold any more. This can
    now be overwritten by an env variable.
    
    Please note that this first test will probably fail in the CI system
    as it might not have XWayland which is needed by KWin.
    7fed20f1