From c57af8c7dcae5ce6bfd538540f19b6ca85c1f311 Mon Sep 17 00:00:00 2001 From: Mario Fetka Date: Sat, 30 May 2026 10:46:56 +0000 Subject: [PATCH] tests: record AFP smoke suite success Document the green Linux AFP smoke-suite report after the FinderInfo Set File Information payload-alignment fix. The report covers the WebSDK/NWAFP smoke path for Entry ID by path, Entry ID from a live NetWare handle, Get File Information, Scan File Information, Alloc Temporary Directory Handle, Open File Fork, FinderInfo Set File Information, and Finder Invisible set/clear. Record the suite-level failures=0 result for SYS:PUBLIC/pmdflts.ini so the current AFP compatibility baseline is captured in a single place. Also record the Linux xattr evidence that matters for the metadata write paths: the FinderInfo value now starts with TEXTMARS without the previous leading padding byte, the attributes xattr reflects Invisible clear as 0x01000000 after the set/clear round-trip, and the cached mars_nwe AFP entry-id xattr stores 0x33f9a1ed in the versioned payload format. Tests: external runtime report from tests/linux/afp_smoke_suite.sh against MARS/SUPERVISOR with SYS:PUBLIC/pmdflts.ini showed failures=0. --- TODO.md | 21 +++++++++++++-------- tests/linux/README.md | 19 +++++++++++++++++++ 2 files changed, 32 insertions(+), 8 deletions(-) diff --git a/TODO.md b/TODO.md index 820f3ba..acbea30 100644 --- a/TODO.md +++ b/TODO.md @@ -254,14 +254,19 @@ Current status: `TEXT` and creator `MARS`. The helper writes 32 bytes of FinderInfo to `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 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 probes should read the cached - mars_nwe entry id and omit the fallback marker. All other Set File - Information bits remain rejected until their write semantics are explicitly - designed. + File Information. The smoke-suite report helper now has a green + `failures=0` run for `SYS:PUBLIC/pmdflts.ini`; that run 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 + 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 + probes should read the cached mars_nwe entry id and omit the fallback marker. + All other Set File Information bits remain rejected until their write + semantics are explicitly designed. - The AFP dispatcher now decodes the WebSDK/NWAFP subfunction number in diagnostics so real client probes can be mapped to the corresponding AFP call before implementation work starts. diff --git a/tests/linux/README.md b/tests/linux/README.md index 61314de..a8cda27 100644 --- a/tests/linux/README.md +++ b/tests/linux/README.md @@ -70,6 +70,25 @@ collected separately. Use `--stop-on-failure` for strict bisect-style runs; by default the script keeps going so one failing endpoint does not hide later AFP output from the report. +A verified suite run after the FinderInfo payload-alignment fix completed with +`failures=0` for `SYS:PUBLIC/pmdflts.ini`. The report covered Entry ID by path, +Entry ID from NetWare handle, Get File Information, Scan File Information, +Alloc Temporary Directory Handle, Open File Fork, FinderInfo Set File +Information, and Finder Invisible set/clear. The relevant Linux xattr checks +from that run were: + +```text +user.org.mars-nwe.afp.finder-info=0x544558544d415253000000000000000000000000000000000000000000000000 +user.org.mars-nwe.afp.attributes=0x01000000 +user.org.mars-nwe.afp.entry-id=0x0100000033f9a1ed +``` + +The FinderInfo value starts with `TEXTMARS` without a leading padding byte, so +the smoke helper and server now agree on the WebSDK/NWAFP Set File Information +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 set/clear probes. + ## AFP Entry ID smoke test `afp_entry_id_smoke` sends the WebSDK-documented NetWare AFP request: