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,31 +1,32 @@
|
||||
# REVOKE baseline test
|
||||
# REVOKE comparison test
|
||||
|
||||
Scripts:
|
||||
`RVKSTA.BAT` creates `F:\RVKTEST` and compares Novell `\NPUBLIC\REVOKE` output with the public implementation `\PUBLIC\REVOKE`.
|
||||
|
||||
- `RVKSTA.BAT` creates `F:\RVKTEST`, uses Novell `\NPUBLIC\GRANT` for setup, then captures Novell `\NPUBLIC\REVOKE` output into `F:\RVKCMP\OUT`. User `MARIO` is used as trustee target.
|
||||
- `RVKZIP.BAT` packages `RUN.LOG`, `SUMMARY.TXT`, `SETUP`, and `OUT` as `F:\RVKCMP\RVKSTA.ZIP`.
|
||||
Result tree:
|
||||
|
||||
Run as `SUPERVISOR` or an equivalent user with Access Control rights on `F:\RVKTEST`.
|
||||
- `F:\RVKCMP\OUT` - Novell baseline output
|
||||
- `F:\RVKCMP\PUBOUT` - public implementation output
|
||||
- `F:\RVKCMP\COMPARE.LOG` - direct `FC` comparisons
|
||||
- `F:\RVKCMP\UNOV` - user-context Novell `RIGHTS` readback
|
||||
- `F:\RVKCMP\UPUB` - user-context public `RIGHTS` readback
|
||||
- `F:\RVKCMP\UCOMP.LOG` - user-context `FC` comparisons
|
||||
|
||||
Covered cases:
|
||||
The direct matrix covers:
|
||||
|
||||
- help and no-argument grammar
|
||||
- normal directory revoke
|
||||
- `ALL` revoke / trustee removal
|
||||
- `/SUBDIRECTORIES` with trustees placed directly on child directories
|
||||
- `/FILES` on an explicit file and on a directory file set
|
||||
- relative path invocation from inside the test directory while invoking `\NPUBLIC\REVOKE` absolutely
|
||||
- no trustee, missing user, missing path behavior, `/FILES` plus `/SUBDIRECTORIES` option-combination behavior, and bad grammar
|
||||
- individual right removal: `R`, `W`, `C`, `E`, `M`, `F`, `A`, `S`
|
||||
- mixed rights removal such as `R F`, `R W C`, `E M F`, `S W C M`
|
||||
- `ALL` removal, which should delete the trustee entry
|
||||
- file-specific mode with `/FILES`
|
||||
- recursive directory mode with `/SUBDIRECTORIES`
|
||||
- missing trustee, missing user, missing path, invalid right, bad grammar, and `/FILES /SUBDIRECTORIES`
|
||||
|
||||
This test is still Novell-baseline-only. Later comparison scripts should run the same command set through `NPUBLIC` and `PUBLIC` with normalized output.
|
||||
Automatic user-context readback requires:
|
||||
|
||||
Notes from the first baseline run:
|
||||
```bat
|
||||
SET LGNTPWD=your-supervisor-password
|
||||
F:\RVKSTA
|
||||
```
|
||||
|
||||
- `REVOKE /SUBDIRECTORIES` did not exercise child paths unless trustees existed on the child directories themselves, so `D20` now uses `SUBTST\S1` and `SUBTST\S2` with direct trustee setup.
|
||||
- Novell `REVOKE` may report `No trustee for the specified directory.` for a missing path before a separate missing-path diagnostic is reached; `D92` records that baseline behavior.
|
||||
- `D93` now uses an independent tree with directory, file, and subdirectory trustees so the `/FILES /SUBDIRECTORIES` option combination is tested without being masked by missing trustee setup.
|
||||
Retest focus after the fix:
|
||||
`RVKC.BAT` is queued via `DLYSTRT`, logs in as `NOPASSUSER`, captures `RIGHTS` output for the matrix cases, logs SUPERVISOR back in, and then starts `RVKSTA PART2` to copy and compare the user-context results.
|
||||
|
||||
- `D20_SUBDIRS_REVOKE_CE.OUT` should no longer be masked by a missing trustee on the named root.
|
||||
- `D92_MISSING_PATH.OUT` records the exact Novell diagnostic for a missing path, even if that diagnostic is still `No trustee for the specified directory.`
|
||||
- `D93_FILES_AND_SUBDIRS.OUT` runs on a prepared tree with directory, file, and subdirectory trustees, so the `/FILES /SUBDIRECTORIES` combination is no longer masked by setup.
|
||||
`RVKZIP.BAT` packs the result tree and cleans `F:\RVKTEST` and `C:\RVKTMP`.
|
||||
|
||||
Reference in New Issue
Block a user