# 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.
