Files
ESP32_Serial_Swiss_Army_Knife/tests/release_notices/README.md
T
Commander1024 cdc4d4a8df Add Phase 9 validation and advisory review
Record the finite dependency search, Wi-Fi maintenance blocker, and
pinned
icon provenance. Add bounded host orchestration and fixture coverage,
and
update release documentation with current evidence.
2026-09-16 16:26:46 +02:00

2.0 KiB

Release notice tool tests

Run python3 tests/release_notices/run.py from the repository root. Uses Python's standard library, isolated temporary fixtures and checked-in icon evidence; no managed package, SDK, toolchain, PlatformIO, network, or device is required. Linux/POSIX path and descriptor semantics match the notice tool.

Covers exact full-text/excerpt preservation and manifests; deterministic bytes across moved roots/changed mtimes; missing, empty, changed and oversized inputs; source body drift outside excerpts; bounds/schema; traversal and symlinks in input/output ancestry; FIFOs/directories; existing user-data preservation; explicit output requirement; unlisted secret/config/build exclusion; incomplete write behavior; and success/failure CLI exits. Additional offline icon tests check exact upstream SHA-256/Git blob identities, release and author metadata, absence of NOTICE paths in the complete pinned tree, actual retained SVG coordinates, USB mockup transforms, manual firmware row bytes, and catalog inclusion. A changed coordinate or added transform is rejected; differing mockup Wi-Fi and unproven manual rasterization are not described as exact upstream matches.

Real installed-input assembly is an explicit, separate offline check:

python3 tests/release_notices/actual_bundle.py \
  --sdk-root /home/mscholz/.platformio/packages/framework-espidf \
  --toolchain-root /home/mscholz/.platformio/packages/toolchain-xtensa-esp-elf

Use literal paths for the reviewed installed snapshot. This invokes the real CLI twice with fresh temporary outputs outside input roots, verifies catalog identity, every manifest entry and payload hash/size, absence of extra files, and identical relative names/bytes across outputs. Temporary outputs are removed after the check. No fetch, dependency installation, build or device access. Recipient delivery remains separate; see docs/release_packaging.md. Passing these tests is not license clearance or corresponding-source compliance.