Expose fuzz and stress test presets

This commit is contained in:
2026-06-02 17:42:23 +02:00
parent 48fdfd849d
commit f6780d183c
4 changed files with 41 additions and 8 deletions

View File

@@ -250,6 +250,30 @@
"label": "gpu" "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"
}
}
} }
] ]
} }

View File

@@ -61,6 +61,8 @@ These commands are the current local baseline.
cmake --preset windows-msvc-default cmake --preset windows-msvc-default
cmake --build --preset windows-msvc-default --config Debug --target PanoPainter cmake --build --preset windows-msvc-default --config Debug --target PanoPainter
ctest --preset desktop-fast --build-config Debug 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\test.ps1 -Preset desktop-fast -Configuration Debug
powershell -ExecutionPolicy Bypass -File scripts\automation\build.ps1 -Preset windows-msvc-default -Configuration Debug -Target pano_cli 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 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, stroke-alpha-blend/stroke spacing/stroke stress/stroke-script coverage,
renderer shader descriptor and OpenGL capability coverage, UI renderer shader descriptor and OpenGL capability coverage, UI
color parsing, and layout XML parse coverage. 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-image` reports PNG IHDR metadata as JSON and is covered by
`pano_cli_inspect_png_metadata_smoke` with a tiny IHDR fixture. `pano_cli_inspect_png_metadata_smoke` with a tiny IHDR fixture.
- `pp_assets_image_pixels_tests` decodes PNG payloads, encodes RGBA8 pixels to - `pp_assets_image_pixels_tests` decodes PNG payloads, encodes RGBA8 pixels to

View File

@@ -246,7 +246,8 @@ Gate:
Goal: make each component reachable by automated tools and future agents. 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 PowerShell/bash wrappers exist for
configure/build/test/analyze/platform-build/package-smoke. `pano_cli` exists configure/build/test/analyze/platform-build/package-smoke. `pano_cli` exists
with JSON automation commands for creating a `pp_document` model, metadata-only 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-fast` | Pure component unit tests | No GPU/window |
| `desktop-gpu` | OpenGL backend golden/readback tests | GPU/GL context | | `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 | | `stress` | Large and adversarial scenarios | Longer runtime |
| `platform-build` | Configure/build each supported platform | Local toolchains | | `platform-build` | Configure/build each supported platform | Local toolchains |
| `package-smoke` | AppX/APK/Apple/WebGL package smoke | Platform SDKs | | `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 --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 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 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\test.ps1 -Preset desktop-fast -Configuration Debug
powershell -ExecutionPolicy Bypass -File scripts\automation\build.ps1 -Preset windows-msvc-default -Configuration Debug -Target pano_cli 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 cmake --build --preset windows-msvc-default --target panopainter_validate_shaders

View File

@@ -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) add_test(NAME pp_foundation_binary_stream_tests COMMAND pp_foundation_binary_stream_tests)
set_tests_properties(pp_foundation_binary_stream_tests PROPERTIES set_tests_properties(pp_foundation_binary_stream_tests PROPERTIES
LABELS "foundation;desktop-fast") LABELS "foundation;desktop-fast;fuzz")
add_executable(pp_foundation_event_tests add_executable(pp_foundation_event_tests
foundation/event_tests.cpp) 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) add_test(NAME pp_assets_image_metadata_tests COMMAND pp_assets_image_metadata_tests)
set_tests_properties(pp_assets_image_metadata_tests PROPERTIES 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 add_executable(pp_assets_image_pixels_tests
assets/image_pixels_tests.cpp) 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) add_test(NAME pp_assets_ppi_header_tests COMMAND pp_assets_ppi_header_tests)
set_tests_properties(pp_assets_ppi_header_tests PROPERTIES 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 add_executable(pp_assets_settings_document_tests
assets/settings_document_tests.cpp) 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) add_test(NAME pp_paint_stroke_tests COMMAND pp_paint_stroke_tests)
set_tests_properties(pp_paint_stroke_tests PROPERTIES set_tests_properties(pp_paint_stroke_tests PROPERTIES
LABELS "paint;desktop-fast") LABELS "paint;desktop-fast;stress")
add_executable(pp_paint_stroke_script_tests add_executable(pp_paint_stroke_script_tests
paint/stroke_script_tests.cpp) 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) add_test(NAME pp_paint_stroke_script_tests COMMAND pp_paint_stroke_script_tests)
set_tests_properties(pp_paint_stroke_script_tests PROPERTIES set_tests_properties(pp_paint_stroke_script_tests PROPERTIES
LABELS "paint;desktop-fast") LABELS "paint;desktop-fast;fuzz")
add_executable(pp_document_tests add_executable(pp_document_tests
document/document_tests.cpp) 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) 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 set_tests_properties(pp_ui_core_layout_xml_tests PROPERTIES
LABELS "ui;desktop-fast") LABELS "ui;desktop-fast;fuzz")
if(TARGET pano_cli) if(TARGET pano_cli)
add_test(NAME pano_cli_create_document_smoke add_test(NAME pano_cli_create_document_smoke