Files
mars-dosutils/test/slist/README.md
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

107 lines
2.6 KiB
Markdown

# 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:
```bat
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:
```bat
SLSTZIP
```
Result ZIP:
```text
F:\SLSTCMP\SLSTSTA.ZIP
```
## Result layout
```text
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`:
```text
\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:
```text
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:
```text
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.