Add renderer and package readiness validation gates

This commit is contained in:
2026-06-15 19:20:56 +02:00
parent 68617e8bc4
commit f78fc3076c
23 changed files with 2350 additions and 389 deletions

View File

@@ -20,6 +20,16 @@ add_test(NAME panopainter_retained_platform_cmake_self_test
set_tests_properties(panopainter_retained_platform_cmake_self_test PROPERTIES
LABELS "tooling;desktop-fast")
add_test(NAME panopainter_component_boundary_self_test
COMMAND "${Python3_EXECUTABLE}" "${PROJECT_SOURCE_DIR}/scripts/dev/check_component_boundaries.py")
set_tests_properties(panopainter_component_boundary_self_test PROPERTIES
LABELS "tooling;desktop-fast")
add_test(NAME panopainter_renderer_api_contract_self_test
COMMAND "${Python3_EXECUTABLE}" "${PROJECT_SOURCE_DIR}/scripts/dev/check_renderer_api_contract.py")
set_tests_properties(panopainter_renderer_api_contract_self_test PROPERTIES
LABELS "tooling;desktop-fast")
add_library(pp_test_harness INTERFACE)
target_include_directories(pp_test_harness INTERFACE
"${CMAKE_CURRENT_SOURCE_DIR}")
@@ -78,6 +88,16 @@ add_test(NAME pp_foundation_task_queue_tests COMMAND pp_foundation_task_queue_te
set_tests_properties(pp_foundation_task_queue_tests PROPERTIES
LABELS "foundation;desktop-fast")
add_executable(pp_foundation_task_queue_stress_tests
foundation/task_queue_stress_tests.cpp)
target_link_libraries(pp_foundation_task_queue_stress_tests PRIVATE
pp_foundation
pp_test_harness)
add_test(NAME pp_foundation_task_queue_stress_tests COMMAND pp_foundation_task_queue_stress_tests)
set_tests_properties(pp_foundation_task_queue_stress_tests PROPERTIES
LABELS "foundation;stress")
add_executable(pp_foundation_trace_tests
foundation/trace_tests.cpp)
target_link_libraries(pp_foundation_trace_tests PRIVATE
@@ -226,7 +246,7 @@ target_link_libraries(pp_renderer_api_tests PRIVATE
add_test(NAME pp_renderer_api_tests COMMAND pp_renderer_api_tests)
set_tests_properties(pp_renderer_api_tests PROPERTIES
LABELS "renderer;desktop-fast")
LABELS "renderer;renderer-conformance;desktop-fast")
if(TARGET pp_renderer_gl)
add_executable(pp_renderer_gl_capabilities_tests
@@ -237,7 +257,7 @@ if(TARGET pp_renderer_gl)
add_test(NAME pp_renderer_gl_capabilities_tests COMMAND pp_renderer_gl_capabilities_tests)
set_tests_properties(pp_renderer_gl_capabilities_tests PROPERTIES
LABELS "renderer;desktop-fast")
LABELS "renderer;renderer-conformance;desktop-fast")
add_executable(pp_renderer_gl_command_plan_tests
renderer_gl/command_plan_tests.cpp)
@@ -247,7 +267,7 @@ if(TARGET pp_renderer_gl)
add_test(NAME pp_renderer_gl_command_plan_tests COMMAND pp_renderer_gl_command_plan_tests)
set_tests_properties(pp_renderer_gl_command_plan_tests PROPERTIES
LABELS "renderer;desktop-fast")
LABELS "renderer;renderer-conformance;desktop-fast")
add_executable(pp_renderer_gl_gpu_readback_tests
renderer_gl/gpu_readback_tests.cpp)
@@ -263,10 +283,15 @@ if(TARGET pp_renderer_gl)
add_test(NAME pp_renderer_gl_gpu_readback_tests COMMAND $<TARGET_FILE:pp_renderer_gl_gpu_readback_tests>)
set_tests_properties(pp_renderer_gl_gpu_readback_tests PROPERTIES
LABELS "renderer;gpu"
LABELS "renderer;renderer-conformance;gpu"
SKIP_REGULAR_EXPRESSION "\\[skip\\]")
endif()
add_test(NAME panopainter_renderer_conformance_matrix_self_test
COMMAND "${Python3_EXECUTABLE}" "${PROJECT_SOURCE_DIR}/scripts/dev/check_renderer_conformance_matrix.py")
set_tests_properties(panopainter_renderer_conformance_matrix_self_test PROPERTIES
LABELS "tooling;desktop-fast")
add_executable(pp_paint_renderer_compositor_tests
paint_renderer/compositor_tests.cpp)
target_link_libraries(pp_paint_renderer_compositor_tests PRIVATE
@@ -670,6 +695,16 @@ add_test(NAME pp_app_core_app_thread_tests COMMAND pp_app_core_app_thread_tests)
set_tests_properties(pp_app_core_app_thread_tests PROPERTIES
LABELS "app;desktop-fast;fuzz")
add_executable(pp_app_core_app_thread_stress_tests
app_core/app_thread_stress_tests.cpp)
target_link_libraries(pp_app_core_app_thread_stress_tests PRIVATE
pp_app_core
pp_test_harness)
add_test(NAME pp_app_core_app_thread_stress_tests COMMAND pp_app_core_app_thread_stress_tests)
set_tests_properties(pp_app_core_app_thread_stress_tests PROPERTIES
LABELS "app;stress")
add_executable(pp_app_core_app_input_tests
app_core/app_input_tests.cpp)
target_link_libraries(pp_app_core_app_input_tests PRIVATE
@@ -1302,6 +1337,24 @@ if(TARGET pano_cli)
LABELS "app;integration;desktop-fast"
PASS_REGULAR_EXPRESSION "\"command\":\"plan-app-thread\".*\"kind\":\"dispatch\".*\"queueTask\":true.*\"removeMatchingUniqueTask\":true.*\"notifyWorker\":true.*\"waitForCompletion\":true")
add_test(NAME pano_cli_plan_app_thread_dispatch_rejects_unsafe
COMMAND pano_cli plan-app-thread --kind dispatch --require-ui-thread)
set_tests_properties(pano_cli_plan_app_thread_dispatch_rejects_unsafe PROPERTIES
LABELS "app;integration;desktop-fast"
PASS_REGULAR_EXPRESSION "\"command\":\"plan-app-thread\".*\"kind\":\"dispatch\".*\"queueTask\":false.*\"rejectUnsafeCrossThreadDispatch\":true")
add_test(NAME pano_cli_plan_app_thread_dispatch_unique_no_wait_when_worker_stopped
COMMAND pano_cli plan-app-thread --kind dispatch --worker-stopped --unique --queued-tasks 2 --wait)
set_tests_properties(pano_cli_plan_app_thread_dispatch_unique_no_wait_when_worker_stopped PROPERTIES
LABELS "app;integration;desktop-fast"
PASS_REGULAR_EXPRESSION "\"command\":\"plan-app-thread\".*\"kind\":\"dispatch\".*\"queueTask\":true.*\"removeMatchingUniqueTask\":true.*\"notifyWorker\":true.*\"waitForCompletion\":false")
add_test(NAME pano_cli_plan_app_thread_dispatch_no_unique_no_removal
COMMAND pano_cli plan-app-thread --kind dispatch --unique --queued-tasks 0)
set_tests_properties(pano_cli_plan_app_thread_dispatch_no_unique_no_removal PROPERTIES
LABELS "app;integration;desktop-fast"
PASS_REGULAR_EXPRESSION "\"command\":\"plan-app-thread\".*\"kind\":\"dispatch\".*\"queueTask\":true.*\"removeMatchingUniqueTask\":false.*\"notifyWorker\":true")
add_test(NAME pano_cli_plan_app_thread_ui_loop_smoke
COMMAND pano_cli plan-app-thread --kind ui-loop --dt 0.25 --frame-accumulator 0.5 --fps-accumulator 0.9 --reload-accumulator 0.9 --rendered-frames 7 --live-reload)
set_tests_properties(pano_cli_plan_app_thread_ui_loop_smoke PROPERTIES