Files
mars-dosutils/test/ndir/README.md
Mario Fetka 4a952b4c4c 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
2026-05-29 07:40:04 +02:00

2.7 KiB

NDIR automated compare test

Automated compare test for NDIR.

Run

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

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:

NDIRZIP

Upload:

F:\NDCMP\NDIRTSTA.ZIP

Then on Linux package with server log:

sudo ./mars_packtest_v3.sh ndirtsta 5 mario

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

Test tree

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.