Files
mars-nwe/tests/README.md

2.5 KiB

mars_nwe test helpers

The test tree contains small smoke helpers for protocol areas that are easier to exercise outside the normal install flow.

AFP

tests/afp contains the current AFP endpoint smoke suite and AFP-specific notes. AFP deleted-file endpoint 0x13 is intentionally still unsupported until the shared salvage backend exposes scan/recover/purge semantics.

Salvage

tests/salvage contains the shared NetWare salvage coverage. These tests are kept outside tests/afp because AFP 0x13 must become a thin adapter over the same backend that serves the NetWare NCP salvage calls.

The current salvage tests cover:

  • local layout contract for .recycle payloads and .salvage JSON metadata,
  • NCP create/delete capture through the normal server delete path,
  • Samba-compatible, non-localized history naming with Copy #1 of NAME,
  • NCP 87/16 scan, 87/17 recover, and 87/18 purge through the official ncpfs helper API,
  • stale .salvage sidecars are ignored and cleaned when their .recycle payload is externally removed,
  • report-file generation with --out FILE.

tests/salvage/salvage_smoke_suite.sh is the single NCP integration entry point. It creates multiple versions of the same file through NCP, deletes them through NCP, scans salvageable entries, recovers the oldest sequence, and checks the restored payload through NCP read. The scan check expects duplicate sequence entries for the original deleted name; backend history paths stay hidden behind the salvage endpoints.

The NCP smoke suite is intended to run as the same Unix user that normally runs the test client, not necessarily as root. Pre-clean of old .recycle or .salvage artifacts is therefore best-effort: permission failures are reported as warnings and do not by themselves fail the smoke. The actual pass/fail check is based on artifacts created by the NCP delete path.

NCP path visibility

Normal mars_nwe NCP path resolution does not expose Unix dot directories as ordinary user-visible NetWare paths. In the classic path resolver, leading-dot components are handled as special ./.. syntax, so names such as .recycle or .salvage return invalid path (0x899c) through normal file open/read requests. Directory scans also skip names beginning with ..

Tests must therefore not validate salvage payloads by opening SYS:.recycle/... or SYS:.salvage/... through normal NCP file calls. Use the salvage scan/recover/purge endpoints for repository state and verify payload content by reading the restored live file through NCP.