tests: record AFP DOS name namespace smoke success
All checks were successful
Source release / source-package (push) Successful in 49s

Record the follow-up Linux smoke-suite result for NCP 0x2222/35/18, AFP Get DOS Name From Entry ID, after the reverse lookup was changed to use the existing namedos.c DOS namespace alias builder.\n\nThe previous implementation returned the raw Unix/realcase relative path, which made SYS:PUBLIC/pmdflts.ini appear as public/pmdflts.ini.  The corrected path now returns the canonical DOS namespace spelling PUBLIC/PMDFLTS.INI, matching mars_nwe's existing DOS name semantics instead of adding AFP-local case handling.\n\nThe note keeps the broader convergence rule explicit: AFP handlers should reuse mars_nwe namespace, attribute, trustee, timestamp, open, and directory helpers wherever those NetWare semantics already exist, and only keep AFP-specific metadata in the AFP xattr namespace.\n\nTests:\n- ./afp_smoke_suite.sh ... SYS:PUBLIC/pmdflts.ini\n- AFP Get DOS Name From Entry ID volume=0 entry_id=0x440cb9b2 path=PUBLIC/PMDFLTS.INI verified\n- Server log: AFP Get DOS Name From Entry ID: vol=0 entry=0x440cb9b2 path='PUBLIC/PMDFLTS.INI'\n- Suite result: failures=0
This commit is contained in:
OpenAI
2026-05-30 14:52:03 +00:00
committed by Mario Fetka
parent b768c921c8
commit e899704677
2 changed files with 19 additions and 8 deletions

10
TODO.md
View File

@@ -381,12 +381,10 @@ Current status:
Fork, narrow Set File Information metadata writes, NetWare-backed Archive
attribute mapping, Modify timestamp writes through `nw_utime_node()`, and
a conservative Get DOS Name From Entry ID reverse lookup.
- The latest smoke-suite run for the new Get DOS Name From Entry ID helper
exposed a casing mismatch rather than a transport failure: the server returned
`public/pmdflts.ini` while the helper expected `PUBLIC/pmdflts.ini`. Follow-up
work should decide whether the helper should compare case-insensitively,
whether AFP 0x12 should return canonical NetWare spelling, or whether the
path resolver should expose an existing mars_nwe canonical DOS-name helper.
- The Get DOS Name From Entry ID helper now returns the canonical DOS namespace
spelling from the existing mars_nwe `namedos.c` alias builder. The follow-up
smoke run confirms `PUBLIC/PMDFLTS.INI` for `SYS:PUBLIC/pmdflts.ini`, replacing
the earlier raw Unix/realcase `public/pmdflts.ini` result.
Design rule:

View File

@@ -693,7 +693,8 @@ entry ID. The reply is a one-byte DOS path length followed by the DOS path
string for the matching entry. The smoke helper first resolves the supplied
`VOL:PATH` through AFP Get Entry ID From Path Name when `--entry-id` is not
provided, then calls AFP Get DOS Name From Entry ID and verifies that the
returned path matches the original path without the volume prefix.
returned path matches the existing mars_nwe DOS namespace spelling without the
volume prefix.
Example:
@@ -704,9 +705,21 @@ Example:
Expected output shape:
```text
AFP Get DOS Name From Entry ID volume=0 entry_id=0x399193ed path=PUBLIC/pmdflts.ini verified
AFP Get DOS Name From Entry ID volume=0 entry_id=0x440cb9b2 path=PUBLIC/PMDFLTS.INI verified
```
A successful post-fix smoke-suite run confirmed the `namedos.c` alias path:
```text
AFP Get DOS Name From Entry ID volume=0 entry_id=0x440cb9b2 path=PUBLIC/PMDFLTS.INI verified
AFP Get DOS Name From Entry ID: vol=0 entry=0x440cb9b2 path='PUBLIC/PMDFLTS.INI'
```
This intentionally returns DOS namespace spelling rather than the raw Unix
realcase path (`public/pmdflts.ini`).
The server implementation deliberately reuses the existing mars_nwe volume table
and the `nwatalk_get_entry_id()` metadata probe. It does not create fallback
entry IDs while walking the volume; the target entry must already have a cached