# NDIR automated compare test

Automated compare test for `NDIR`.

## Run

```text
SET LGNTPWD=dein-supervisor-passwort
F:
CD \
NDIRTSTA
```

`LGNTPWD` is required because the test switches to `NOPASSUSER` and then logs back in as `SUPERVISOR` through the maintainer-only `LOGIN /PWD:` path.

## Result layout

```text
F:\NDCMP\OUT\*.OUT       Novell baseline via \NPUBLIC\NDIR
F:\NDCMP\PUBOUT\*.OUT    PUBLIC implementation via \PUBLIC\NDIR
F:\NDCMP\COMPARE.LOG      direct compare log
F:\NDCMP\SHORTOUT\*.OUT   PUBLIC-only /SHORT helper output; not compared

F:\NDCMP\UNOV\*.OUT      Novell NDIR as NOPASSUSER
F:\NDCMP\UPUB\*.OUT      PUBLIC NDIR as NOPASSUSER
F:\NDCMP\UCOMP.LOG        user-context compare log
F:\NDCMP\USHORT\*.OUT     PUBLIC-only /SHORT helper output as NOPASSUSER
```

Optional pack:

```text
NDIRZIP
```

Upload:

```text
F:\NDCMP\NDIRTSTA.ZIP
```

Then on Linux package with server log:

```sh
sudo ./mars_packtest_v3.sh ndirtsta 5 mario
```

The pack helper should find `/var/mars_nwe/SYS/NDCMP/NDIRTSTA.ZIP` by search.

## Test tree

```text
F:\TNDIR
```

## Coverage

- basic directory and file NDIR
- `/DATES`
- `/RIGHTS`
- attributes via `NPUBLIC\FLAG`
- filters `/H`, `/RO`, `/SY`, `/A`, `/NOT H`
- wildcards `*.TXT`, `*.DAT`
- `/FO`, `/DO`
- `/SUB` and `/SUB /RIGHTS` in the Novell-compatible compare set
- extended file/directory matrix under `F:\TNDIR\MAT`:
  - files with Normal, Hidden, Read-only, System, Archive, DI/RI and mixed attributes
  - directories with Normal, Hidden, System, Purge, DI/RI and mixed directory flags
  - matrix checks for normal listing, `/DATES`, `/RIGHTS`, `/FO`, `/DO`, `/SUB`, filters and wildcards
- Public-only `/SHORT` output in `SHORTOUT` / `USHORT` is kept for diagnostics and is not compared against Novell
- missing-pattern and help output
- NOPASSUSER readback after GRANT matrix setup, including the extended `MAT` file/directory matrix

`NDIRZIP` cleans the generated `TNDIR` tree and `C:\NDIRTMP` helper directory after packaging.

## Notes on /SHORT

`/SHORT` is a MARS DOS tools helper option. Novell NDIR does not know this option,
so the test keeps `/SHORT` output in `SHORTOUT` and `USHORT` only. These files are
packaged for manual inspection but are not part of the byte-for-byte Novell compare.


Additional user/trustee matrix
------------------------------
The extended matrix also creates F:\TNDIR\USR with trustees for multiple
objects that exist in the default test environment:

- USER NOPASSUSER
- USER MARIO
- USER GUEST
- GROUP EVERYONE

The delayed NOPASSUSER phase reads the same tree through NPUBLIC and PUBLIC
NDIR.  This gives more coverage for effective-rights output: direct user
trustees, group/EVERYONE trustees, unrelated user trustees, inherited rights,
and Supervisor-on-child cases.
