测试与验证矩阵
测试目标由 tests/CMakeLists.txt 注册,使用 -Wall -Wextra -Wpedantic -Werror 编译,并通过 C 编译单元(c_abi_core、c_abi_egl、c_abi_vulkan)持续验证公开头文件对 C11 客户端可用。
| ctest 名称 | 覆盖 |
|---|---|
test_codec |
报文编解码、magic/头校验、SCM_RIGHTS FD 计数 |
test_protocol |
各消息编解码、UTF-8 校验、golden 向量与解析边界 |
test_session |
消费/生产会话、握手状态机、断连清理 |
broker |
路由核心:同 UID 校验、输出路由、格式协商、扇出、代际管理 |
test_producer |
生产端:缓冲出借、帧提交、退役 |
test_sync |
DRM syncobj 扇出、sync_file 桥接 |
test_vulkan |
Vulkan 导入、relay/blit、导出(检测到 Vulkan 时构建) |
test_egl |
EGL 导入与 fence 同步(检测到 EGL 时构建) |
cmake -S . -B build -G Ninja -DMIRAGE_DISPLAY_BUILD_TESTS=ONcmake --build buildctest --test-dir build --output-on-failure协议层:golden 向量;短包、超长包、尾随字节的拒绝;FD 数组缺失、超量、截断;未知可选/必选 opcode;旧代际丢帧;握手、绑定、帧、解绑各阶段断连;FD 计数回归。
GPU:Intel/AMD/NVIDIA 驱动、同卡与 PRIME 跨卡、线性与修饰符布局、1x/分数/混合缩放、尺寸变化、旋转、热插拔与挂起恢复。
桌面环境:Plasma Wayland 与 Plasma X11 全链路;GNOME 与 layer-shell 按规划推进。