diff --git a/CMakePresets.json b/CMakePresets.json index a39620d..be98125 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -250,6 +250,30 @@ "label": "gpu" } } + }, + { + "name": "fuzz", + "configurePreset": "windows-msvc-default", + "output": { + "outputOnFailure": true + }, + "filter": { + "include": { + "label": "fuzz" + } + } + }, + { + "name": "stress", + "configurePreset": "windows-msvc-default", + "output": { + "outputOnFailure": true + }, + "filter": { + "include": { + "label": "stress" + } + } } ] } diff --git a/docs/modernization/build-inventory.md b/docs/modernization/build-inventory.md index acbaa83..98fd7ae 100644 --- a/docs/modernization/build-inventory.md +++ b/docs/modernization/build-inventory.md @@ -61,6 +61,8 @@ These commands are the current local baseline. cmake --preset windows-msvc-default cmake --build --preset windows-msvc-default --config Debug --target PanoPainter ctest --preset desktop-fast --build-config Debug +ctest --preset fuzz --build-config Debug +ctest --preset stress --build-config Debug powershell -ExecutionPolicy Bypass -File scripts\automation\test.ps1 -Preset desktop-fast -Configuration Debug powershell -ExecutionPolicy Bypass -File scripts\automation\build.ps1 -Preset windows-msvc-default -Configuration Debug -Target pano_cli cmake --build --preset windows-msvc-default --target panopainter_validate_shaders @@ -98,6 +100,10 @@ Known local toolchain state: stroke-alpha-blend/stroke spacing/stroke stress/stroke-script coverage, renderer shader descriptor and OpenGL capability coverage, UI color parsing, and layout XML parse coverage. +- Root CMake exposes named `fuzz` and `stress` CTest presets. `fuzz` currently + runs deterministic parser/serializer edge tests for binary streams, image + metadata, PPI, stroke scripts, and layout XML; `stress` currently runs the + stroke sampler stress coverage. - `pano_cli inspect-image` reports PNG IHDR metadata as JSON and is covered by `pano_cli_inspect_png_metadata_smoke` with a tiny IHDR fixture. - `pp_assets_image_pixels_tests` decodes PNG payloads, encodes RGBA8 pixels to diff --git a/docs/modernization/roadmap.md b/docs/modernization/roadmap.md index 209d615..434257e 100644 --- a/docs/modernization/roadmap.md +++ b/docs/modernization/roadmap.md @@ -246,7 +246,8 @@ Gate: Goal: make each component reachable by automated tools and future agents. -Status: in progress. `tests/` exists, `desktop-fast` runs headlessly, and +Status: in progress. `tests/` exists, `desktop-fast`, `fuzz`, and `stress` +CTest presets run headlessly, and PowerShell/bash wrappers exist for configure/build/test/analyze/platform-build/package-smoke. `pano_cli` exists with JSON automation commands for creating a `pp_document` model, metadata-only @@ -660,7 +661,7 @@ Gate: | --- | --- | --- | | `desktop-fast` | Pure component unit tests | No GPU/window | | `desktop-gpu` | OpenGL backend golden/readback tests | GPU/GL context | -| `fuzz` | Parser and serializer fuzzing | Fuzzer-capable compiler | +| `fuzz` | Deterministic parser/serializer edge corpus; future libFuzzer entrypoint | No GPU/window today | | `stress` | Large and adversarial scenarios | Longer runtime | | `platform-build` | Configure/build each supported platform | Local toolchains | | `package-smoke` | AppX/APK/Apple/WebGL package smoke | Platform SDKs | @@ -681,6 +682,8 @@ Last verified on 2026-06-02: cmake --preset windows-msvc-default cmake --build --preset windows-msvc-default --config Debug --target pp_foundation_binary_stream_tests pp_foundation_event_tests pp_foundation_log_tests pp_foundation_parse_tests pp_foundation_task_queue_tests pp_foundation_trace_tests pp_assets_image_format_tests pp_assets_image_metadata_tests pp_assets_image_pixels_tests pp_assets_ppi_header_tests pp_assets_settings_document_tests pp_paint_brush_tests pp_paint_blend_tests pp_paint_stroke_tests pp_document_tests pp_document_ppi_import_tests pp_document_ppi_export_tests pp_renderer_api_tests pp_paint_renderer_compositor_tests pp_ui_core_color_tests pp_ui_core_layout_value_tests pp_ui_core_layout_xml_tests pano_cli PanoPainter ctest --preset desktop-fast --build-config Debug +ctest --preset fuzz --build-config Debug +ctest --preset stress --build-config Debug powershell -ExecutionPolicy Bypass -File scripts\automation\test.ps1 -Preset desktop-fast -Configuration Debug powershell -ExecutionPolicy Bypass -File scripts\automation\build.ps1 -Preset windows-msvc-default -Configuration Debug -Target pano_cli cmake --build --preset windows-msvc-default --target panopainter_validate_shaders diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 0c14bbe..4ca4529 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -14,7 +14,7 @@ target_link_libraries(pp_foundation_binary_stream_tests PRIVATE add_test(NAME pp_foundation_binary_stream_tests COMMAND pp_foundation_binary_stream_tests) set_tests_properties(pp_foundation_binary_stream_tests PROPERTIES - LABELS "foundation;desktop-fast") + LABELS "foundation;desktop-fast;fuzz") add_executable(pp_foundation_event_tests foundation/event_tests.cpp) @@ -84,7 +84,7 @@ target_link_libraries(pp_assets_image_metadata_tests PRIVATE add_test(NAME pp_assets_image_metadata_tests COMMAND pp_assets_image_metadata_tests) set_tests_properties(pp_assets_image_metadata_tests PROPERTIES - LABELS "assets;desktop-fast") + LABELS "assets;desktop-fast;fuzz") add_executable(pp_assets_image_pixels_tests assets/image_pixels_tests.cpp) @@ -104,7 +104,7 @@ target_link_libraries(pp_assets_ppi_header_tests PRIVATE add_test(NAME pp_assets_ppi_header_tests COMMAND pp_assets_ppi_header_tests) set_tests_properties(pp_assets_ppi_header_tests PROPERTIES - LABELS "assets;desktop-fast") + LABELS "assets;desktop-fast;fuzz") add_executable(pp_assets_settings_document_tests assets/settings_document_tests.cpp) @@ -144,7 +144,7 @@ target_link_libraries(pp_paint_stroke_tests PRIVATE add_test(NAME pp_paint_stroke_tests COMMAND pp_paint_stroke_tests) set_tests_properties(pp_paint_stroke_tests PROPERTIES - LABELS "paint;desktop-fast") + LABELS "paint;desktop-fast;stress") add_executable(pp_paint_stroke_script_tests paint/stroke_script_tests.cpp) @@ -154,7 +154,7 @@ target_link_libraries(pp_paint_stroke_script_tests PRIVATE add_test(NAME pp_paint_stroke_script_tests COMMAND pp_paint_stroke_script_tests) set_tests_properties(pp_paint_stroke_script_tests PROPERTIES - LABELS "paint;desktop-fast") + LABELS "paint;desktop-fast;fuzz") add_executable(pp_document_tests document/document_tests.cpp) @@ -246,7 +246,7 @@ target_link_libraries(pp_ui_core_layout_xml_tests PRIVATE add_test(NAME pp_ui_core_layout_xml_tests COMMAND pp_ui_core_layout_xml_tests) set_tests_properties(pp_ui_core_layout_xml_tests PROPERTIES - LABELS "ui;desktop-fast") + LABELS "ui;desktop-fast;fuzz") if(TARGET pano_cli) add_test(NAME pano_cli_create_document_smoke