From 711dceb42a87d6439f05db2c394894c8d423e273 Mon Sep 17 00:00:00 2001 From: Mario Fetka Date: Sun, 31 May 2026 04:35:31 +0000 Subject: [PATCH] tests: record standalone AFP xattr backend smoke success --- TODO.md | 11 ++++++++--- tests/linux/README.md | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 3 deletions(-) diff --git a/TODO.md b/TODO.md index 911cf59..88f145a 100644 --- a/TODO.md +++ b/TODO.md @@ -282,9 +282,10 @@ Current status: The covered bitmaps are FinderInfo (`0x4000`), Attributes (`0x0100`), Access Date/Time (`0x0400`), Create Date/Time (`0x0800`), Modify Date/Time (`0x1000`), and Backup Date/Time (`0x2000`). FinderInfo is stored in - `org.mars-nwe.afp.finder-info`; AFP-only Hidden/System metadata is stored in - `org.mars-nwe.afp.attributes`; Archive is mapped to the existing NetWare - `FILE_ATTR_A` attribute path; Create and Backup Date/Time use the existing + `org.mars-nwe.afp.finder-info`; Hidden/System/Archive attributes are mapped + to the existing NetWare attribute path; `org.mars-nwe.afp.attributes` is only + for future AFP-only bits that are not NetWare attributes. Create and Backup + Date/Time use the existing mars_nwe NetWare metadata helpers; Access Date/Time uses the normal file `atime` path; and Modify Date/Time uses the shared timestamp helper. Linux smoke coverage exists in `tests/linux/afp_set_file_info_smoke`, which now @@ -301,6 +302,10 @@ Current status: Netatalk/libatalk dependency for Entry ID, FinderInfo, or AFP-only attribute storage; AFP protocol support remains limited to the endpoints explicitly implemented in `nwconn.c` and guarded by the existing build configuration. + Runtime status after the standalone backend change: the full AFP smoke suite + completed with `failures=0`, including path-backed and entry-id-only Open File + Fork, FinderInfo xattr verification, absent optional AFP-only attributes xattr, + and NetWare-backed Hidden/System/Archive/timestamp probes. - Existing mars_nwe private xattr payloads use the `org.mars-nwe..*` namespace (`org.mars-nwe.netware.archive` and `org.mars-nwe.netware.fileinfo`) rather than the unreleased test-only `user.mars_nwe.*` names. There is no legacy read diff --git a/tests/linux/README.md b/tests/linux/README.md index 1db07ad..16ae3b6 100644 --- a/tests/linux/README.md +++ b/tests/linux/README.md @@ -1137,3 +1137,40 @@ This keeps the current policy split intact: directory Entry IDs may use the existing namespace/basehandle mapping, while regular file Entry IDs are resolved through AFP metadata only. Resource forks remain unsupported and continue to return completion 0x9c. + +## Standalone AFP xattr backend smoke success + +The AFP metadata backend no longer depends on Netatalk/libatalk for the +currently implemented metadata. After the standalone mars_nwe xattr backend +change, the full AFP smoke suite was rerun against `SYS:PUBLIC/pmdflts.ini` +and completed successfully. + +Verified smoke run: + +```text +AFP Entry ID From Path Name +AFP Entry ID path=SYS:PUBLIC/pmdflts.ini request_path=SYS:PUBLIC/pmdflts.ini dir_handle=0 entry_id=0x05811b2a (92347178) + +AFP Open File Fork by Entry ID +AFP Open File Fork path=SYS:PUBLIC/pmdflts.ini entry_id=0x05811b2a handle=1 fork=0 access=0x01 fork_len=8161 entry-id-only + +AFP Open File Fork write access by Entry ID +AFP Open File Fork path=SYS:PUBLIC/atst2 entry_id=0x145f0c8a handle=1 fork=0 access=0x02 fork_len=0 entry-id-only + +Linux xattr: AFP FinderInfo +user.org.mars-nwe.afp.finder-info=0x544558544d415253000000000000000000000000000000000000000000000000 + +Linux xattr: AFP Entry ID +user.org.mars-nwe.afp.entry-id=0x0100000005811b2a + +AFP-only attributes xattr is absent; this is expected when the tested Hidden/System/Archive bits are stored through the NetWare attribute path. + +Summary: failures=0 +``` + +This confirms that Entry ID and FinderInfo metadata are served from the +mars_nwe-owned AFP xattrs, while Hidden/System/Archive attributes and the +timestamp fields continue to use the existing NetWare metadata paths. AFP +remains behind the existing build configuration; this smoke only records that +the implemented AFP endpoints no longer need a Netatalk/libatalk metadata +backend when xattr support is enabled.