Files
mars-dosutils/test/slist
Mario Fetka 4a952b4c4c dosutils: align Novell-compatible tests and stage NCOPY work
Update the DOS utilities and test suite with the current Novell comparison
state.

Validated/updated tool behavior:
- improve CREATOR output by showing Novell-style attribute and rights masks
- extend FLAGDIR handling with old NCP22 directory attribute read/write
  fallback paths
- expand NDIR Novell-style formatting, filtering, /SUB handling, date output,
  DI/RI attribute display and richer metadata collection
- adjust REVOKE output/grammar, recursive /SUBDIRECTORIES behavior and trustee
  update/delete paths to better match Novell tools
- adjust SLIST header/output behavior for logged-in and logged-out cases
- update README status to reflect the currently green/tested tools

Test-suite changes:
- add/refresh Novell comparison tests for CREATOR, NDIR, REVOKE and SLIST
- update NCOPY tests and collection scripts for the current investigation state
- refresh per-tool README files and top-level test documentation
- keep MAP documented as still separately open

NCOPY:
- add the current NCOPY implementation and experimental NCP74/server-side-copy
  scaffolding
- build ncopy.c so it stays compile-tested
- keep NCOPY disabled in the NET multicall dispatch for now because the
  server-side-copy/open-handle path is still unsafe and needs further analysis

Build:
- include ncopy.c in the DOS utility build
- drop the temporary MARS_DOSUTILS_VERSION define wiring from CMake
2026-05-29 07:40:04 +02:00
..

SLSTSTA - SLIST logged-in/logged-out compare test

SLSTSTA.BAT compares Novell SLIST with the current public implementation in both states in which SLIST is expected to work:

  1. Logged in: \NPUBLIC\SLIST vs \PUBLIC\SLIST.
  2. Logged out: \NLOGIN\SLIST.EXE vs \LOGIN\SLIST.EXE, copied to a local C:\SLSTTMP helper directory before logout.

SLIST is also installed in SYS:LOGIN, so the logged-out phase is important. After LOGOUT, the network drive F: is gone; therefore the helper runs from C:\SLSTTMP and only returns to F: after logging SUPERVISOR back in.

Run

Run while logged in as SUPERVISOR and with F: mapped to SYS:.

For the full logged-in and logged-out comparison:

SET LGNTPWD=your-supervisor-password
F:
CD \
SLSTSTA

If LGNTPWD is not set, only the logged-in NPUBLIC vs PUBLIC comparison is run. The logged-out phase is skipped.

Package manually after the run:

SLSTZIP

Result ZIP:

F:\SLSTCMP\SLSTSTA.ZIP

Result layout

F:\SLSTCMP\OUT       logged-in Novell baseline from \NPUBLIC\SLIST
F:\SLSTCMP\PUBOUT    logged-in PUBLIC output from \PUBLIC\SLIST
F:\SLSTCMP\COMPARE.LOG

F:\SLSTCMP\LOUT      logged-out Novell baseline from local NLOGIN copy
F:\SLSTCMP\LPUBOUT   logged-out LOGIN output from local LOGIN copy
F:\SLSTCMP\LCOMP.LOG

F:\SLSTCMP\RUN.LOG
F:\SLSTCMP\HELPER.TXT
F:\SLSTCMP\SUMMARY.TXT

Logged-out helper flow

SLSTSTA.BAT copies the files required after logout to C:\SLSTTMP:

\NLOGIN\SLIST.EXE  -> C:\SLSTTMP\NSLIST.EXE
\LOGIN\SLIST.EXE   -> C:\SLSTTMP\SLIST.EXE
\NPUBLIC\LOGOUT.EXE
\LOGIN\LOGIN.EXE
\PUBLIC\DLYSTRT.EXE
F:\SLSTC.BAT

The public SLIST copy is intentionally named SLIST.EXE, not PSLIST.EXE, because the public DOS tools are a multi-call executable and dispatch by their own program name.

SLSTC.BAT then:

  1. runs LOGOUT,
  2. runs both SLIST copies while no user is logged in,
  3. logs back in as SUPERVISOR using LOGIN /PWD:%LGNTPWD%,
  4. queues F:\SLSTSTA.BAT PART2 through the local DLYSTRT.EXE.

Coverage

Each phase captures the same matrix:

SLIST
SLIST MARS
SLIST NWBYGONE01
SLIST /CONTINUE
SLIST MARS /CONTINUE
SLIST NWBYGONE01 /CONTINUE
SLIST /?

MARS is expected to exist. NWBYGONE01 is expected to be missing.

D99_HELP.OUT for the Novell side is intentionally simulated with:

Usage: SLIST [Server] [/Continue]

The Novell SLIST /? text is visible on the console but does not always land in the redirected output file. The public implementation is redirected normally and must match this stable baseline.