Files
mars-dosutils/test/map/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

67 lines
1.3 KiB
Markdown

# MAP automated test
`MAPTSTA.BAT` captures a Novell MAP baseline using `NPUBLIC\MAP`.
This is not yet a PUBLIC-vs-Novell compare; it documents the Novell behavior that the public MAP implementation should match.
LOGIN is intentionally not tested here. `PATH`, `PATHINS`, and `PATHDEL` are
our own tools, so they are not included in this Novell baseline.
## NetWare semantics
Verified against real NetWare:
```text
MAP G:=SYS:PUBLIC
```
sets the current path on `G:` to `\PUBLIC`, but it is not a fake root. `CD \`
returns to `SYS:\`.
```text
MAP ROOT G:=SYS:PUBLIC
```
sets `SYS:PUBLIC` as fake root. `CD \` stays inside `SYS:PUBLIC`.
## Run
Run while already logged in and with `F:` mapped to `SYS`.
```text
MAPTSTA
```
Optional pack:
```text
MAPTZIP
```
Result ZIP:
```text
F:\MAPCMP\MAPTSTA.ZIP
```
Linux package with server log:
```sh
sudo ./mars_packtest_v3.sh maptsta 5 mario
```
## Coverage
- display current maps
- non-root subdir map `G:=SYS:MAPTEST`
- verify `CD \` returns to volume root for non-root map
- fake-root map `MAP ROOT G:=SYS:MAPTEST`
- verify `CD \` stays in fake-root for root map
- fake-root map to `SYS:NPUBLIC` and find `NDIR.EXE`
- map `H:` to `HOME:`
- map `I:` to `QUOTA:`
- fake-root map `J:` to `QUOTA:USERQUOTA`
- delete `G:`, `H:`, `I:`, `J:`
- expected failure after delete
- expected failure for bad target