diff --git a/docs/modernization/build-inventory.md b/docs/modernization/build-inventory.md index 6898e0d..67aeb2d 100644 --- a/docs/modernization/build-inventory.md +++ b/docs/modernization/build-inventory.md @@ -100,7 +100,8 @@ Known local toolchain state: `pano_cli_inspect_png_metadata_smoke` with a tiny IHDR fixture. - `pano_cli import-image` accepts a PNG path, decodes RGBA8 pixels through `pp_assets`, attaches them to a pure `pp_document` face payload, and is - covered for metadata-valid truncated PNG rejection by + covered for checked-in decodable PNG import by `pano_cli_import_image_smoke` + and metadata-valid truncated PNG rejection by `pano_cli_import_image_rejects_truncated_png`. - `pano_cli inspect-project` reports validated PPI thumbnail/body byte layout, body summary fields, layer/frame descriptors, and dirty-face PNG payload @@ -273,8 +274,9 @@ Known local toolchain state: `pano_cli_simulate_image_import_smoke`. - `pano_cli import-image` exposes file-driven PNG decode and document face-payload attachment through JSON automation and is covered by - `pano_cli_import_image_rejects_truncated_png`; a checked-in decodable image - fixture and export/round-trip automation remain future CLI tasks. + `pano_cli_import_image_smoke` and + `pano_cli_import_image_rejects_truncated_png`; export/round-trip automation + remains a future CLI task. - `pano_cli save-project` exposes generated multi-layer, multi-frame PPI writing through JSON automation and is covered by metadata-only and dirty-face-payload round-trip smoke tests; full legacy canvas save parity remains tracked by diff --git a/docs/modernization/roadmap.md b/docs/modernization/roadmap.md index 802b41d..3b1804d 100644 --- a/docs/modernization/roadmap.md +++ b/docs/modernization/roadmap.md @@ -334,6 +334,7 @@ input tests. `pano_cli inspect-image` exposes PNG IHDR metadata as JSON, `pano_cli import-image` accepts a PNG path and imports decoded RGBA8 pixels into a new pure `pp_document` face payload, +with checked-in decodable PNG and truncated PNG automation coverage, `pano_cli inspect-project` reports validated PPI thumbnail/body byte layout, body summary, layer/frame descriptors, dirty-face PNG payload metadata, and asset-level decode coverage, and @@ -783,9 +784,9 @@ Results: `pp_assets` and `pp_document` face-payload attachment through JSON automation. - `pano_cli import-image` accepts a PNG file path, decodes RGBA8 pixels through - `pp_assets`, attaches them to a pure `pp_document` face payload, and has a - truncated-PNG rejection smoke test. A checked-in decodable image fixture and - full export/round-trip automation remain future `pano_cli` tasks. + `pp_assets`, attaches them to a pure `pp_document` face payload, and has + checked-in decodable-PNG plus truncated-PNG rejection smoke tests. Full + export/round-trip automation remains a future `pano_cli` task. - `pano_cli save-project` exposes generated multi-layer, multi-frame PPI writing through JSON automation and is covered by metadata-only and dirty-face-payload save/load round-trip smoke tests. Full legacy canvas save parity remains diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 35301ab..ef1aeb6 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -271,6 +271,18 @@ if(TARGET pano_cli) set_tests_properties(pano_cli_import_image_rejects_truncated_png PROPERTIES LABELS "assets;document;integration;desktop-fast") + add_test(NAME pano_cli_import_image_smoke + COMMAND pano_cli import-image + --path "${CMAKE_CURRENT_SOURCE_DIR}/data/images/tiny-rgba-1x1.png" + --document-width 64 + --document-height 32 + --face 5 + --x 7 + --y 11) + set_tests_properties(pano_cli_import_image_smoke PROPERTIES + LABELS "assets;document;integration;desktop-fast" + PASS_REGULAR_EXPRESSION "\"command\":\"import-image\".*\"image\":\\{\"format\":\"png\",\"width\":1,\"height\":1,\"bytes\":4\\}.*\"document\":\\{\"width\":64,\"height\":32,\"layers\":1,\"frames\":1,\"facePayloads\":1\\}.*\"payload\":\\{\"face\":5,\"x\":7,\"y\":11,\"width\":1,\"height\":1,\"bytes\":4\\}") + add_test(NAME pano_cli_inspect_project_layout_smoke COMMAND pano_cli inspect-project --path "${CMAKE_CURRENT_SOURCE_DIR}/data/projects/minimal-project.ppi") set_tests_properties(pano_cli_inspect_project_layout_smoke PROPERTIES diff --git a/tests/data/images/tiny-rgba-1x1.png b/tests/data/images/tiny-rgba-1x1.png new file mode 100644 index 0000000..35a340b Binary files /dev/null and b/tests/data/images/tiny-rgba-1x1.png differ