tests: record AFP file fork I/O smoke success

This commit is contained in:
OAI
2026-05-31 05:15:38 +00:00
committed by Mario Fetka
parent 10696f384b
commit 7c0af26ec5
2 changed files with 62 additions and 0 deletions

23
TODO.md
View File

@@ -637,3 +637,26 @@ AFP Get/Scan AccessPrivileges convergence:
NetWare namespace/basehandles, but regular files currently keep nwatalk or
fallback AFP IDs because the existing directory-number reverse mapper is not
a reliable file-entry reverse mapper on DOS namespace volumes.
### Final AFP endpoint audit before declaring compatibility slice complete
After the current AFP smoke-covered endpoint set is otherwise complete, perform
one final endpoint-by-endpoint audit against the WebSDK archive and the Novell
NWAFP headers. The goal is not to add new semantics, but to verify that every
implemented AFP call number, request layout, reply layout, bitmap, completion
code, and unsupported-operation response still matches the published wire
interfaces.
Checklist for that final audit:
- compare the `nwconn.c` AFP dispatch table with the WebSDK/NWAFP endpoint list;
- verify legacy and AFP 2.0 variants separately;
- re-check Get/Set/Scan File Information record offsets, lengths, and bitmaps;
- re-check Create, Delete, Rename, Open Fork, and Entry-ID resolver request
layouts;
- confirm Resource Fork behaviour remains intentionally unsupported and returns
the documented completion code used by the smoke tests;
- confirm all NetWare-semantic data still routes through mars_nwe paths
(trustees, attributes, timestamps, namespace, create/open/rename/delete), and
only AFP-only metadata stays in `org.mars-nwe.afp.*` xattrs;
- keep the result as the final AFP compatibility report in `tests/afp/README.md`.

View File

@@ -1210,3 +1210,42 @@ AFP 2.0 Set File Information: vol=0 request_vol=0 entry=0x05aaace0 mask=0x0100 p
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`.
## AFP File Fork I/O smoke success
AFP Open File Fork returns a normal mars_nwe/NetWare file handle for the data
fork. The AFP smoke suite now verifies that the returned handle works with the
existing NetWare read/write paths rather than introducing any AFP-private POSIX
I/O path.
Verified smoke run:
```text
AFP File Fork Read via NetWare handle
AFP File Fork I/O read path=SYS:PUBLIC/pmdflts.ini entry_id=0x00000000 offset=0 requested=16 read=16 fork_len=8161
AFP File Fork Read by Entry ID via NetWare handle
AFP File Fork I/O read path=SYS:PUBLIC/pmdflts.ini entry_id=0x05aaace0 offset=0 requested=16 read=16 fork_len=8161 entry-id-only
AFP File Fork Write via NetWare handle
AFP File Fork I/O write path=SYS:PUBLIC/atst3 entry_id=0x00000000 offset=0 size=8 verified
AFP File Fork Write by Entry ID via NetWare handle
AFP File Fork I/O write path=SYS:PUBLIC/atst3 entry_id=0x0edc380e offset=0 size=11 verified entry-id-only
Summary: failures=0
```
The write probes create the test file through AFP Create File, open the data
fork through AFP Open File Fork, perform I/O through the existing NetWare file
handle read/write operations, and clean up through AFP Delete. Resource Fork
opens remain covered by the separate negative smoke and continue to return the
unsupported completion.
## Final AFP endpoint audit TODO
Before the AFP compatibility slice is marked complete, do one last audit of all
implemented AFP endpoints against the WebSDK archive and Novell NWAFP headers.
That final check should compare call numbers, request/reply layouts, legacy vs.
AFP 2.0 variants, bitmaps, record lengths, and unsupported completion codes for
the complete smoke-covered endpoint set.