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
This commit is contained in:
@@ -1,21 +1,106 @@
|
||||
# SLSTSTA - SLIST baseline test
|
||||
# SLSTSTA - SLIST logged-in/logged-out compare test
|
||||
|
||||
Novell-only baseline for `SLIST` behavior.
|
||||
`SLSTSTA.BAT` compares Novell `SLIST` with the current public implementation in
|
||||
both states in which SLIST is expected to work:
|
||||
|
||||
Runs `NPUBLIC\SLIST` with:
|
||||
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.
|
||||
|
||||
- no argument
|
||||
- `MARS` as expected existing server
|
||||
- `NWBYGONE01` as expected missing-server/negative test
|
||||
- `/CONTINUE` variants
|
||||
- `/?` usage output
|
||||
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.
|
||||
|
||||
Results are written to `F:\SLSTCMP`. Optional packaging is done with `SLSTZIP.BAT`.
|
||||
## Run
|
||||
|
||||
`D99_HELP.OUT` is intentionally simulated with:
|
||||
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]
|
||||
```
|
||||
|
||||
Reason: the Novell `SLIST /?` help text was observed on the console, but it does not reliably land in the redirected output file. Later, our implementation should run `SLIST /? > D99_HELP.OUT`, and this simulated Novell baseline gives us a stable file for comparison.
|
||||
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.
|
||||
|
||||
Reference in New Issue
Block a user