dosutils: add maintainer helpers and compare-ready tools
Add maintainer-only support used by the automated DOS compatibility tests. This introduces the MAINTAINER_BUILD option for the DOS tools. In maintainer builds, LOGIN accepts the hidden /PWD: and /PASSWORD: arguments for automated test relogin, and the DLYSTRT helper is built to delay-start DOS batch files after the invoking batch has returned to the prompt. Add the WHOAMI utility and wire it into the NET command dispatch. Also adjust SLIST and RIGHTS output to match Novell behavior more closely, including server-not-found handling, path formatting, Supervisor rights, missing-path errors and usage text. Extend the test scripts to compare NPUBLIC Novell baselines against the PUBLIC implementations. LOGIN/LOGOUT can now run automatically via DLYSTRT and the maintainer LOGIN password option. RIGHTS gains an additional NOPASSUSER effective-rights matrix that covers single rights, mixed rights, Supervisor rights, ALL/N and file trustee cases. Normal builds remain free of maintainer-only helpers and hidden password handling.
This commit is contained in:
@@ -1,74 +1,75 @@
|
||||
# LOGIN / LOGOUT baseline test
|
||||
|
||||
`LGNTSTA` is a manual two-stage baseline test for Novell `LOGIN`, `LOGOUT`, and `MAP`.
|
||||
|
||||
This test does **not** overwrite `SYS:LOGIN`, `SYS:PUBLIC`, or `SYS:NPUBLIC`. It copies the Novell tools to a temporary local directory on `C:` and runs from there. `LOGIN` and `MAP` are copied from `SYS:NLOGIN`; `LOGOUT` is copied from `SYS:NPUBLIC`.
|
||||
|
||||
## Required setup
|
||||
|
||||
User `NOPASSUSER` must exist on `MARS` and must be able to login without a password.
|
||||
|
||||
## Run
|
||||
|
||||
Start while logged in as `SUPERVISOR`:
|
||||
|
||||
```bat
|
||||
F:\LGNTSTA
|
||||
```
|
||||
|
||||
Then run the helper from `C:`:
|
||||
|
||||
```bat
|
||||
C:
|
||||
CD \LGNTTMP
|
||||
LGNTC
|
||||
```
|
||||
|
||||
The helper does:
|
||||
|
||||
```text
|
||||
LOGOUT
|
||||
LOGIN NOPASSUSER
|
||||
MAP
|
||||
LOGOUT
|
||||
```
|
||||
|
||||
All tool calls and redirected output paths are absolute `C:\LGNTTMP\...`, because Novell `LOGIN` can change the current drive/search path.
|
||||
|
||||
Then login manually as `SUPERVISOR` again from the same local tool directory:
|
||||
|
||||
```bat
|
||||
C:\LGNTTMP\LOGIN SUPERVISOR
|
||||
```
|
||||
|
||||
After the login script restores `F:`, collect results:
|
||||
|
||||
```bat
|
||||
F:\LGNTSTA PART2
|
||||
F:\LGNTZIP
|
||||
```
|
||||
|
||||
## Expected output files
|
||||
|
||||
`F:\LGNTCMP\OUT` contains:
|
||||
|
||||
```text
|
||||
D01_LOG.OUT LOGOUT output from initial supervisor session
|
||||
D02_LGIN.OUT LOGIN NOPASSUSER output
|
||||
D03_MAP.OUT MAP output after NOPASSUSER login
|
||||
D04_LGOT.OUT LOGOUT output from NOPASSUSER session
|
||||
D99_HELP.OUT simulated LOGIN usage line for later comparison
|
||||
HELPER.TXT helper trace
|
||||
```
|
||||
|
||||
`D99_HELP.OUT` is intentionally produced with `ECHO`, because Novell `LOGIN /?` may not redirect help text reliably.
|
||||
|
||||
|
||||
## Implementation note
|
||||
|
||||
After `LOGIN NOPASSUSER`, DOS/NetWare may change the current drive/search path. `LGNTC.BAT` therefore calls `C:\LGNTTMP\LOGIN`, `C:\LGNTTMP\MAP`, and `C:\LGNTTMP\LOGOUT` explicitly and redirects to absolute `C:\LGNTTMP\*.OUT` files.
|
||||
|
||||
## Parameter handling
|
||||
|
||||
`LGNTSTA` starts Part 1 only when called without parameters. `PART2` is accepted case-insensitively (`PART2`, `part2`, `Part2`, etc.). Any other parameter prints usage and does not start Part 1, so a typo cannot accidentally reset the test state.
|
||||
|
||||
# LOGIN / LOGOUT baseline test
|
||||
|
||||
`LGNTSTA` is an automated maintainer baseline test for Novell `LOGIN`, `LOGOUT`, and `MAP`.
|
||||
|
||||
This test does **not** overwrite `SYS:LOGIN`, `SYS:PUBLIC`, or `SYS:NPUBLIC`. It copies the Novell tools to a temporary local directory on `C:` and runs from there. `LOGIN` and `MAP` are copied from `SYS:NLOGIN`; `LOGOUT` is copied from `SYS:NPUBLIC`. The maintainer helper `DLYSTRT.EXE` is also copied to `C:\LGNTTMP` before it is used, so the delayed phase no longer depends on `F:` or `PUBLIC` being visible.
|
||||
|
||||
## Required setup
|
||||
|
||||
User `NOPASSUSER` must exist on `MARS` and must be able to login without a password.
|
||||
|
||||
For a fully automated run, the DOS tools must be built with `MAINTAINER_BUILD=ON` so `LOGIN /PWD:` and `DLYSTRT` are available.
|
||||
|
||||
Set the supervisor password in the DOS environment before starting:
|
||||
|
||||
```bat
|
||||
SET LGNTPWD=your-supervisor-password
|
||||
```
|
||||
|
||||
The password is not written to `RUN.LOG` or `HELPER.TXT`, but it is still present in the DOS environment during the test. Use this only for maintainer testing.
|
||||
|
||||
## Run
|
||||
|
||||
Start while logged in as `SUPERVISOR`:
|
||||
|
||||
```bat
|
||||
F:\LGNTSTA
|
||||
```
|
||||
|
||||
`LGNTSTA` prepares `C:\LGNTTMP`, copies the local helper there, and installs:
|
||||
|
||||
```bat
|
||||
C:
|
||||
CD \LGNTTMP
|
||||
DLYSTRT /T:2 LGNTC.BAT
|
||||
```
|
||||
|
||||
Then `LGNTSTA` exits after switching to `C:\LGNTTMP`. After the delay, `DLYSTRT` types `LGNTC.BAT` into the local `C:` prompt, and the helper does:
|
||||
|
||||
```text
|
||||
LOGOUT
|
||||
LOGIN NOPASSUSER
|
||||
MAP
|
||||
LOGOUT
|
||||
LOGIN SUPERVISOR /PWD:%LGNTPWD%
|
||||
F:\LGNTSTA PART2
|
||||
F:\LGNTZIP
|
||||
```
|
||||
|
||||
If `LGNTPWD` is not set, `LGNTSTA` does not start Part 1 at all. It prints a short usage hint with the required `SET LGNTPWD=...` command and does not install `DLYSTRT`, so the test cannot accidentally log out and then stop half-way through.
|
||||
|
||||
## Expected output files
|
||||
|
||||
`F:\LGNTCMP\OUT` contains:
|
||||
|
||||
```text
|
||||
D01_LOG.OUT LOGOUT output from initial supervisor session
|
||||
D02_LGIN.OUT LOGIN NOPASSUSER output
|
||||
D03_MAP.OUT MAP output after NOPASSUSER login
|
||||
D04_LGOT.OUT LOGOUT output from NOPASSUSER session
|
||||
D05_LGSU.OUT LOGIN SUPERVISOR /PWD output, if LGNTPWD was set
|
||||
D99_HELP.OUT simulated LOGIN usage line for later comparison
|
||||
HELPER.TXT helper trace
|
||||
```
|
||||
|
||||
`D99_HELP.OUT` is intentionally produced with `ECHO`, because Novell `LOGIN /?` may not redirect help text reliably.
|
||||
|
||||
## Implementation note
|
||||
|
||||
After `LOGOUT`, the network drive `F:` disappears. Therefore `LGNTSTA` must finish before logout happens. `DLYSTRT` provides that gap by returning to DOS first. `LGNTSTA` switches to `C:\LGNTTMP` before installing it, so the delayed command is typed into a local `C:` prompt instead of an `F:` prompt.
|
||||
|
||||
After `LOGIN NOPASSUSER`, DOS/NetWare may change the current drive/search path. `LGNTC.BAT` therefore calls `C:\LGNTTMP\LOGIN`, `C:\LGNTTMP\MAP`, and `C:\LGNTTMP\LOGOUT` explicitly and redirects to absolute `C:\LGNTTMP\*.OUT` files.
|
||||
|
||||
## Parameter handling
|
||||
|
||||
`LGNTSTA` starts Part 1 only when called without parameters. `PART2` is accepted case-insensitively (`PART2`, `part2`, `Part2`, etc.). Any other parameter prints usage and does not start Part 1, so a typo cannot accidentally reset the test state.
|
||||
|
||||
Reference in New Issue
Block a user