tests: record AFP metadata entry-id resolver smoke success

This commit is contained in:
Mario Fetka
2026-05-31 04:53:06 +00:00
parent 6fd542e7ef
commit 85ea3dd863
2 changed files with 53 additions and 0 deletions

17
TODO.md
View File

@@ -578,6 +578,23 @@ Access Date/Time remained on the normal file `atime` path and did not create an
AFP metadata xattr.
### AFP metadata entry-id resolver convergence
AFP Get File Information and AFP Set File Information now accept entry-id-only
requests for regular files whose AFP ID is present in the mars_nwe AFP entry-id
xattr metadata. The shared resolver converts the AFP file Entry ID back to a
normal `VOL:PATH` string and then routes the operation through the existing
NetWare metadata paths. Regular file Entry IDs are not treated as DOS namespace
directory numbers.
Runtime status: the full AFP smoke suite is verified with `failures=0` after
adding entry-id-only coverage for Get File Information, Set File Information
FinderInfo, and Set File Information Hidden. The verified run used AFP Entry ID
`0x05aaace0` for `SYS:PUBLIC/pmdflts.ini`; the server log shows the resolver
feeding `SYS:PUBLIC/PMDFLTS.INI` into Get/Set File Information before applying
the normal FinderInfo and NetWare attribute paths.
### AFP Set File Information WebSDK layout convergence
AFP Set File Information now requires the fixed WebSDK/NWAFP packet layouts for

View File

@@ -1174,3 +1174,39 @@ 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.
## AFP metadata entry-id resolver smoke success
AFP metadata endpoints now share the same file Entry ID resolver that was first
used by AFP Open File Fork. Regular file Entry IDs are reverse-resolved through
the mars_nwe AFP entry-id xattr metadata and then routed back into the normal
NetWare path-based helpers. They are not interpreted as DOS namespace directory
numbers.
Verified smoke run:
```text
AFP Get File Information by Entry ID
AFP File Info subfunction=0x05 path=SYS:PUBLIC/pmdflts.ini entry_id=0x05aaace0 parent_id=0x00000000 attrs=0x2000 data_len=8161 resource_len=0 offspring=0 long_name=PMDFLTS.INI short_name=PMDFLTS.INI rights=0x9f00 reply_len=114 entry-id-only
AFP Set File Information FinderInfo by Entry ID
AFP Set File Info subfunction=0x10 layout=websdk path=SYS:PUBLIC/pmdflts.ini bitmap=0x4000 attrs=0x2000 create=0x5cbf access=0x5cbf modify=0x5cbf35da backup=0x00000000 finder_type=TEXT finder_creator=MARS entry_id=0x05aaace0 verified entry-id-only
AFP Set File Information Hidden by Entry ID
AFP Set File Info subfunction=0x10 layout=websdk path=SYS:PUBLIC/pmdflts.ini bitmap=0x0100 attrs=0x2200 create=0x5cbf access=0x5cbf modify=0x5cbf35da backup=0x00000000 finder_type=TEXT finder_creator=MARS entry_id=0x05aaace0 verified entry-id-only
Summary: failures=0
```
The server log for the same run shows the shared resolver feeding normal
metadata operations with a resolved AFP/NetWare path:
```text
AFP Get File Information: vol=0 entry=0x05aaace0 mask=0xffff path='SYS:PUBLIC/PMDFLTS.INI' reply_entry=0x05aaace0
AFP 2.0 Set File Information: vol=0 request_vol=0 entry=0x05aaace0 mask=0x4000 path='SYS:PUBLIC/PMDFLTS.INI' layout=websdk finder_info attrs=0x0000 atime=-1 mtime=-1
AFP 2.0 Set File Information: vol=0 request_vol=0 entry=0x05aaace0 mask=0x0100 path='SYS:PUBLIC/PMDFLTS.INI' layout=websdk attributes attrs=0x8200 atime=-1 mtime=-1
```
Directory Entry IDs continue to use the existing namespace/basehandle path.
Regular file Entry IDs continue to be AFP metadata IDs stored in
`user.org.mars-nwe.afp.entry-id`.