diff --git a/TODO.md b/TODO.md index 2858dce..e937a43 100644 --- a/TODO.md +++ b/TODO.md @@ -257,13 +257,16 @@ Current status: `org.mars-nwe.afp.finder-info`, stores the narrow attribute word in `org.mars-nwe.afp.attributes`, and verifies the result through AFP 2.0 Get File Information. The smoke-suite report helper now includes AFP 2.0 FinderInfo, legacy AFP `0x09` FinderInfo, AFP 2.0 Invisible/System/Backup set/clear probes, - and legacy AFP `0x09` Invisible set/clear probes, and has a green - `failures=0` run for `SYS:PUBLIC/pmdflts.ini`; that run confirms the corrected - FinderInfo payload alignment by reading + and legacy AFP `0x09` Invisible set/clear probes, and has green + `failures=0` runs for `SYS:PUBLIC/pmdflts.ini`; the latest run was from the + build-tree copy of `afp_smoke_suite.sh` after the CMake sync fix and confirms + legacy `0x09` FinderInfo plus legacy `0x09` Invisible set/clear in the same + report as AFP 2.0 `0x10`. It confirms the corrected FinderInfo payload + alignment by reading `user.org.mars-nwe.afp.finder-info=0x544558544d415253...` (`TEXTMARS` with no - leading padding byte), confirms Invisible set/clear via the versioned - attributes xattr (`0x01000001` then `0x01000000`), and confirms the cached - Entry ID xattr (`0x0100000033f9a1ed`). The first stat-derived AFP entry id + leading padding byte), confirms attribute set/clear via the versioned + attributes xattr ending clean at `0x01000000`, and confirms the cached + Entry ID xattr (`0x010000001ad06d3e` in the latest run). The first stat-derived AFP entry id for a path is now cached in the versioned `org.mars-nwe.afp.entry-id` xattr; a `fallback` marker on that first verification Get File Information diagnostic describes the entry-id origin, not the FinderInfo write result. Follow-up diff --git a/tests/linux/README.md b/tests/linux/README.md index 0838adc..10d9ca0 100644 --- a/tests/linux/README.md +++ b/tests/linux/README.md @@ -76,11 +76,11 @@ user.org.mars-nwe.afp.entry-id The suite now also exercises the additional metadata-only AFP attribute bits that `afp_set_file_info_smoke` supports: System (`0x0004`) and Backup (`0x0040`). -It additionally runs the legacy AFP `0x09` path for the Invisible attribute so -both Set File Information entry points cover FinderInfo and attribute writes. -It clears both again before the final xattr dump so repeated runs leave the -attribute payload in the clean `0x01000000` state unless a previous command -fails. +It additionally runs the legacy AFP `0x09` path for FinderInfo and the Invisible +attribute so both Set File Information entry points cover the metadata write +path. It clears each attribute bit again before the final xattr dump so repeated +runs leave the attribute payload in the clean `0x01000000` state unless a +previous command fails. Use `--no-log` when the log file is unavailable or when the server log is being collected separately. Use `--stop-on-failure` for strict bisect-style runs; by @@ -106,6 +106,27 @@ payload alignment. The server log excerpt for the same run showed all AFP operations returning successfully, including `mask=0x0020` for FinderInfo and `mask=0x0001` for the Invisible/System/Backup attribute probes. + +A later full-suite run after the smoke-suite copy/sync fix also completed with +`failures=0` from the build-tree script and confirmed that the legacy AFP Set +File Information endpoint (`0x09`) is exercised in the same report as AFP 2.0 +`0x10`. The run covered legacy FinderInfo, legacy Invisible set/clear, AFP 2.0 +System set/clear, and AFP 2.0 Backup set/clear while leaving the final attribute +xattr clear: + +```text +AFP Set File Info subfunction=0x09 path=SYS:PUBLIC/pmdflts.ini bitmap=0x0020 attrs=0x0000 finder_type=TEXT finder_creator=MARS entry_id=0x1ad06d3e verified +AFP Set File Info subfunction=0x09 path=SYS:PUBLIC/pmdflts.ini bitmap=0x0001 attrs=0x0001 finder_type=TEXT finder_creator=MARS entry_id=0x1ad06d3e verified +AFP Set File Info subfunction=0x09 path=SYS:PUBLIC/pmdflts.ini bitmap=0x0001 attrs=0x0000 finder_type=TEXT finder_creator=MARS entry_id=0x1ad06d3e verified +AFP Set File Info subfunction=0x10 path=SYS:PUBLIC/pmdflts.ini bitmap=0x0001 attrs=0x0004 finder_type=TEXT finder_creator=MARS entry_id=0x1ad06d3e verified +AFP Set File Info subfunction=0x10 path=SYS:PUBLIC/pmdflts.ini bitmap=0x0001 attrs=0x0000 finder_type=TEXT finder_creator=MARS entry_id=0x1ad06d3e verified +AFP Set File Info subfunction=0x10 path=SYS:PUBLIC/pmdflts.ini bitmap=0x0001 attrs=0x0040 finder_type=TEXT finder_creator=MARS entry_id=0x1ad06d3e verified +AFP Set File Info subfunction=0x10 path=SYS:PUBLIC/pmdflts.ini bitmap=0x0001 attrs=0x0000 finder_type=TEXT finder_creator=MARS entry_id=0x1ad06d3e verified +user.org.mars-nwe.afp.finder-info=0x544558544d415253000000000000000000000000000000000000000000000000 +user.org.mars-nwe.afp.attributes=0x01000000 +user.org.mars-nwe.afp.entry-id=0x010000001ad06d3e +``` + ## AFP Entry ID smoke test `afp_entry_id_smoke` sends the WebSDK-documented NetWare AFP request: