diff options
| author | Adam Malczewski <[email protected]> | 2026-06-12 19:24:22 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-06-12 19:24:22 +0900 |
| commit | 8d7749516d70b8a27df4441c2b3e717de1a7a724 (patch) | |
| tree | 9b0cb1257cd6d7859972b990710ebf69ac293db4 /packages/kernel/tests/test_kernel.cpp | |
| parent | a21f705692595ea711a736e2ae9c256c1dde7b1e (diff) | |
| download | unbox-8d7749516d70b8a27df4441c2b3e717de1a7a724.tar.gz unbox-8d7749516d70b8a27df4441c2b3e717de1a7a724.zip | |
Slice 2: tinywl port — kernel compositor runs nested, manages toplevels, touch added
Server contract (pimpl, create/run/dispatch/terminate) over a faithful
tinywl 0.20.1 port: outputs via wlr_scene, xdg-shell toplevels+popups,
focus, interactive move/resize, keyboard/pointer through wlr_cursor — plus
touch (down/up/motion/cancel/frame via seat notifies with per-point origin
tracking), which tinywl lacks. RAII Listener replaces manual wl_list_remove
bookkeeping; shutdown ordering documented in kernel.md. xkbcommon added as
a system dep. Verified: nested under labwc (output WL-1, foot mapped and
focused on GLES2) and a headless+pixman boot test in the kernel suite.
Diffstat (limited to 'packages/kernel/tests/test_kernel.cpp')
| -rw-r--r-- | packages/kernel/tests/test_kernel.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/packages/kernel/tests/test_kernel.cpp b/packages/kernel/tests/test_kernel.cpp index ebcfbc3..0172901 100644 --- a/packages/kernel/tests/test_kernel.cpp +++ b/packages/kernel/tests/test_kernel.cpp @@ -2,6 +2,9 @@ #include <doctest/doctest.h> #include <unbox/kernel/kernel.hpp> +#include <unbox/kernel/server.hpp> + +#include <cstdlib> TEST_CASE("kernel compiles against and links wlroots + libwayland-server") { CHECK(unbox::kernel::link_probe()); @@ -11,3 +14,16 @@ TEST_CASE("kernel compiles against and links wlroots + libwayland-server") { TEST_CASE("vendored RMLUi subproject compiled and linked") { CHECK(!unbox::kernel::rmlui_version().empty()); } + +TEST_CASE("server boots and shuts down on the headless backend") { + // Headless backend + pixman renderer: no GPU, no parent session needed. + setenv("WLR_BACKENDS", "headless", 1); + setenv("WLR_RENDERER", "pixman", 1); + + auto server = unbox::kernel::Server::create({}); + CHECK(!server->socket_name().empty()); + for (int i = 0; i < 3; ++i) { + CHECK(server->dispatch(10)); + } + // Destruction runs the full tinywl shutdown sequence. +} |
