tests: add Novell DOS tool baseline suite

Add DOS-side baseline scripts for the Novell tools used to compare the
reimplemented public utilities.

The suite covers the current baseline set:

  MAP
  SLIST
  WHOAMI
  LOGIN / LOGOUT
  NDIR
  NCOPY
  FLAG
  FLAGDIR
  CREATOR
  RIGHTS
  GRANT
  REVOKE
  REMOVE

It also includes supporting trustee, rights, rename, move, delete and
file-operation tests.

Each test writes reproducible output into a per-tool CMP directory and
provides a matching ZIP helper for collecting the results. The ZIP
helpers clean generated test trees afterwards so SYS: does not keep
accumulating temporary directories.

This is the Novell baseline layer only. A later change can extend the
same scripts to run the full comparison cycle:

  NPUBLIC baseline -> PUBLIC implementation -> NPUBLIC control
This commit is contained in:
Mario Fetka
2026-05-27 13:31:46 +02:00
parent 0df41482c7
commit f214e89d69
65 changed files with 4831 additions and 0 deletions

134
test/ndir/NDIRCMP.BAT Normal file
View File

@@ -0,0 +1,134 @@
@ECHO OFF
REM NDIRCMP4.BAT
REM NDIR Vergleichstest mit kleinerem Baum, /SHORT, /RIGHTS und Trustee-Aenderungen.
REM
REM Linux-Vorbereitung:
REM sh mkndirdata.sh /var/mars_nwe/SYS
REM
REM DOS-Annahmen:
REM NPUBLIC = Novell Tools
REM PUBLIC = unsere Tools
REM NDIRN = Novell-Vergleichsbaum
REM NDIRU = Unser Vergleichsbaum
REM
REM Hinweis:
REM Fuer lange Ausgaben nutzen wir /SHORT /CONTINUOUS.
REM Die PAUSEs sind absichtlich fuer Screenshots.
ECHO.
ECHO === NDIRCMP4: kompakter NDIR Test ===
ECHO Erwartet vorhandene Testbaeume NDIRN und NDIRU.
ECHO Falls nicht vorhanden: Linux mkndirdata.sh ausfuehren.
ECHO.
PAUSE
ECHO.
ECHO === Block 1A: Novell Basis NDIRN ===
ECHO NPUBLIC\NDIR NDIRN
NPUBLIC\NDIR NDIRN
PAUSE
ECHO === Block 1B: Unser Basis NDIRU ===
ECHO PUBLIC\NDIR NDIRU
PUBLIC\NDIR NDIRU
PAUSE
ECHO.
ECHO === Block 2A: Novell /DATES ===
ECHO NPUBLIC\NDIR NDIRN /DATES
NPUBLIC\NDIR NDIRN /DATES
PAUSE
ECHO === Block 2B: Unser /DATES ===
ECHO PUBLIC\NDIR NDIRU /DATES
PUBLIC\NDIR NDIRU /DATES
PAUSE
ECHO.
ECHO === Block 3A: Novell /RIGHTS ===
ECHO NPUBLIC\NDIR NDIRN /RIGHTS
NPUBLIC\NDIR NDIRN /RIGHTS
PAUSE
ECHO === Block 3B: Unser /RIGHTS ===
ECHO PUBLIC\NDIR NDIRU /RIGHTS
PUBLIC\NDIR NDIRU /RIGHTS
PAUSE
ECHO.
ECHO === Block 4B: Unser /SUB /SHORT ===
ECHO PUBLIC\NDIR NDIRU /SUB /SHORT /CONTINUOUS
PUBLIC\NDIR NDIRU /SUB /SHORT /CONTINUOUS
PAUSE
ECHO.
ECHO === Block 5B: Unser /SUB /RIGHTS /SHORT ===
ECHO PUBLIC\NDIR NDIRU /SUB /RIGHTS /SHORT /CONTINUOUS
PUBLIC\NDIR NDIRU /SUB /RIGHTS /SHORT /CONTINUOUS
PAUSE
ECHO.
ECHO === Block 6B: Unser wildcard *.EXE /SUB /SHORT ===
ECHO PUBLIC\NDIR NDIRU\*.EXE /SUB /SHORT /CONTINUOUS
PUBLIC\NDIR NDIRU\*.EXE /SUB /SHORT /CONTINUOUS
PAUSE
ECHO.
ECHO === Block 7B: Ausgangsrechte vor GRANT/REVOKE/REMOVE ===
ECHO PUBLIC\RIGHTS NDIRU\SUB1
PUBLIC\RIGHTS NDIRU\SUB1
ECHO.
ECHO PUBLIC\NDIR NDIRU /SUB /RIGHTS /SHORT /CONTINUOUS
PUBLIC\NDIR NDIRU /SUB /RIGHTS /SHORT /CONTINUOUS
PAUSE
ECHO.
ECHO === Block 8B: GRANT eingeschraenkte Rechte auf NDIRU\SUB1 ===
ECHO PUBLIC\GRANT R F FOR NDIRU\SUB1 TO USER MARIO
PUBLIC\GRANT R F FOR NDIRU\SUB1 TO USER MARIO
ECHO.
ECHO PUBLIC\RIGHTS NDIRU\SUB1
PUBLIC\RIGHTS NDIRU\SUB1
ECHO.
ECHO PUBLIC\NDIR NDIRU /SUB /RIGHTS /SHORT /CONTINUOUS
PUBLIC\NDIR NDIRU /SUB /RIGHTS /SHORT /CONTINUOUS
PAUSE
ECHO.
ECHO === Block 9B: GRANT mehr Rechte auf NDIRU\SUB1 ===
ECHO PUBLIC\GRANT R W C E M F A FOR NDIRU\SUB1 TO USER MARIO
PUBLIC\GRANT R W C E M F A FOR NDIRU\SUB1 TO USER MARIO
ECHO.
ECHO PUBLIC\RIGHTS NDIRU\SUB1
PUBLIC\RIGHTS NDIRU\SUB1
ECHO.
ECHO PUBLIC\NDIR NDIRU /SUB /RIGHTS /SHORT /CONTINUOUS
PUBLIC\NDIR NDIRU /SUB /RIGHTS /SHORT /CONTINUOUS
PAUSE
ECHO.
ECHO === Block 10B: REVOKE W M von NDIRU\SUB1 ===
ECHO PUBLIC\REVOKE W M FOR NDIRU\SUB1 FROM USER MARIO
PUBLIC\REVOKE W M FOR NDIRU\SUB1 FROM USER MARIO
ECHO.
ECHO PUBLIC\RIGHTS NDIRU\SUB1
PUBLIC\RIGHTS NDIRU\SUB1
ECHO.
ECHO PUBLIC\NDIR NDIRU /SUB /RIGHTS /SHORT /CONTINUOUS
PUBLIC\NDIR NDIRU /SUB /RIGHTS /SHORT /CONTINUOUS
PAUSE
ECHO.
ECHO === Block 11B: REMOVE Trustee von NDIRU\SUB1 ===
ECHO PUBLIC\REMOVE USER MARIO FROM NDIRU\SUB1
PUBLIC\REMOVE USER MARIO FROM NDIRU\SUB1
ECHO.
ECHO PUBLIC\RIGHTS NDIRU\SUB1
PUBLIC\RIGHTS NDIRU\SUB1
ECHO.
ECHO PUBLIC\NDIR NDIRU /SUB /RIGHTS /SHORT /CONTINUOUS
PUBLIC\NDIR NDIRU /SUB /RIGHTS /SHORT /CONTINUOUS
PAUSE
ECHO.
ECHO === Fertig ===

172
test/ndir/NDIRTSTA.BAT Normal file
View File

@@ -0,0 +1,172 @@
@ECHO OFF
REM NDIRTSTA.BAT
REM Automated Novell NDIR baseline for MARS NWE.
REM
REM No PAUSE, no screenshots required.
REM All output is redirected into F:\NDCMP.
REM
REM Test tree:
REM F:\TNDIR
REM
REM Results:
REM F:\NDCMP\RUN.LOG
REM F:\NDCMP\SUMMARY.TXT
REM F:\NDCMP\OUT\*.OUT
F:
CD \
REM --- Clean generated test/result directories (contents only). ---
IF EXIST NDIRTEST\NUL DELTREE /Y NDIRTEST\*.*
IF EXIST NDIRCMP\NUL DELTREE /Y NDIRCMP\*.*
REM --- Directory setup ---
IF NOT EXIST TNDIR\NUL MD TNDIR
IF NOT EXIST TNDIR\SUBDIR\NUL MD TNDIR\SUBDIR
IF NOT EXIST NDCMP\NUL MD NDCMP
IF NOT EXIST NDCMP\OUT\NUL MD NDCMP\OUT
REM --- Clean result files, no wildcard DEL to avoid DOS prompts ---
IF EXIST F:\NDCMP\RUN.LOG DEL F:\NDCMP\RUN.LOG
IF EXIST F:\NDCMP\SUMMARY.TXT DEL F:\NDCMP\SUMMARY.TXT
IF EXIST F:\NDCMP\ZIP.LOG DEL F:\NDCMP\ZIP.LOG
IF EXIST F:\NDCMP\NDIRTSTA.ZIP DEL F:\NDCMP\NDIRTSTA.ZIP
IF EXIST F:\NDCMP\OUT\N01_ROOT.OUT DEL F:\NDCMP\OUT\N01_ROOT.OUT
IF EXIST F:\NDCMP\OUT\N02_ALFA.OUT DEL F:\NDCMP\OUT\N02_ALFA.OUT
IF EXIST F:\NDCMP\OUT\N02_BETA.OUT DEL F:\NDCMP\OUT\N02_BETA.OUT
IF EXIST F:\NDCMP\OUT\N03_DATES.OUT DEL F:\NDCMP\OUT\N03_DATES.OUT
IF EXIST F:\NDCMP\OUT\N03_ADATE.OUT DEL F:\NDCMP\OUT\N03_ADATE.OUT
IF EXIST F:\NDCMP\OUT\N04_RGT.OUT DEL F:\NDCMP\OUT\N04_RGT.OUT
IF EXIST F:\NDCMP\OUT\N04_RGTA.OUT DEL F:\NDCMP\OUT\N04_RGTA.OUT
IF EXIST F:\NDCMP\OUT\N05_FLGA.OUT DEL F:\NDCMP\OUT\N05_FLGA.OUT
IF EXIST F:\NDCMP\OUT\N05_FLGB.OUT DEL F:\NDCMP\OUT\N05_FLGB.OUT
IF EXIST F:\NDCMP\OUT\N05_FLGG.OUT DEL F:\NDCMP\OUT\N05_FLGG.OUT
IF EXIST F:\NDCMP\OUT\N06_ATTR.OUT DEL F:\NDCMP\OUT\N06_ATTR.OUT
IF EXIST F:\NDCMP\OUT\N06_ADAT.OUT DEL F:\NDCMP\OUT\N06_ADAT.OUT
IF EXIST F:\NDCMP\OUT\N07_H.OUT DEL F:\NDCMP\OUT\N07_H.OUT
IF EXIST F:\NDCMP\OUT\N07_RO.OUT DEL F:\NDCMP\OUT\N07_RO.OUT
IF EXIST F:\NDCMP\OUT\N07_SY.OUT DEL F:\NDCMP\OUT\N07_SY.OUT
IF EXIST F:\NDCMP\OUT\N07_A.OUT DEL F:\NDCMP\OUT\N07_A.OUT
IF EXIST F:\NDCMP\OUT\N08_NOTH.OUT DEL F:\NDCMP\OUT\N08_NOTH.OUT
IF EXIST F:\NDCMP\OUT\N08_NOTR.OUT DEL F:\NDCMP\OUT\N08_NOTR.OUT
IF EXIST F:\NDCMP\OUT\N09_SUN.OUT DEL F:\NDCMP\OUT\N09_SUN.OUT
IF EXIST F:\NDCMP\OUT\N09_SSI.OUT DEL F:\NDCMP\OUT\N09_SSI.OUT
IF EXIST F:\NDCMP\OUT\N09_SUP.OUT DEL F:\NDCMP\OUT\N09_SUP.OUT
IF EXIST F:\NDCMP\OUT\N10_TXT.OUT DEL F:\NDCMP\OUT\N10_TXT.OUT
IF EXIST F:\NDCMP\OUT\N10_DAT.OUT DEL F:\NDCMP\OUT\N10_DAT.OUT
IF EXIST F:\NDCMP\OUT\N11_FO.OUT DEL F:\NDCMP\OUT\N11_FO.OUT
IF EXIST F:\NDCMP\OUT\N11_DO.OUT DEL F:\NDCMP\OUT\N11_DO.OUT
IF EXIST F:\NDCMP\OUT\N12_SUB.OUT DEL F:\NDCMP\OUT\N12_SUB.OUT
IF EXIST F:\NDCMP\OUT\N12_SDIR.OUT DEL F:\NDCMP\OUT\N12_SDIR.OUT
IF EXIST F:\NDCMP\OUT\N14_FINAL.OUT DEL F:\NDCMP\OUT\N14_FINAL.OUT
ECHO NDIRTSTA automated Novell NDIR baseline > F:\NDCMP\RUN.LOG
ECHO Date/time stamp skipped to avoid DOS prompt. >> F:\NDCMP\RUN.LOG
ECHO. >> F:\NDCMP\RUN.LOG
ECHO === SETUP TEST TREE === >> F:\NDCMP\RUN.LOG
REM Reset test files.
IF EXIST F:\TNDIR\ALPHA.TXT DEL F:\TNDIR\ALPHA.TXT
IF EXIST F:\TNDIR\BETA.TXT DEL F:\TNDIR\BETA.TXT
IF EXIST F:\TNDIR\GAMMA.DAT DEL F:\TNDIR\GAMMA.DAT
IF EXIST F:\TNDIR\SUBDIR\SUB.TXT DEL F:\TNDIR\SUBDIR\SUB.TXT
IF NOT EXIST F:\TNDIR\NUL MD F:\TNDIR
IF NOT EXIST F:\TNDIR\SUBDIR\NUL MD F:\TNDIR\SUBDIR
ECHO NDIR TEST ALPHA > F:\TNDIR\ALPHA.TXT
ECHO NDIR TEST BETA > F:\TNDIR\BETA.TXT
ECHO NDIR TEST GAMMA > F:\TNDIR\GAMMA.DAT
ECHO NDIR SUB FILE > F:\TNDIR\SUBDIR\SUB.TXT
ECHO === ATTRIBUTE CLEANUP === >> F:\NDCMP\RUN.LOG
NPUBLIC\FLAG F:\TNDIR\ALPHA.TXT N >> F:\NDCMP\RUN.LOG
NPUBLIC\FLAG F:\TNDIR\BETA.TXT N >> F:\NDCMP\RUN.LOG
NPUBLIC\FLAG F:\TNDIR\GAMMA.DAT N >> F:\NDCMP\RUN.LOG
NPUBLIC\FLAG F:\TNDIR\SUBDIR\SUB.TXT N >> F:\NDCMP\RUN.LOG
ECHO === N01 BASIS DIRECTORY === >> F:\NDCMP\RUN.LOG
NPUBLIC\NDIR F:\TNDIR > F:\NDCMP\OUT\N01_ROOT.OUT
ECHO === N02 DIRECT FILES === >> F:\NDCMP\RUN.LOG
NPUBLIC\NDIR F:\TNDIR\ALPHA.TXT > F:\NDCMP\OUT\N02_ALFA.OUT
NPUBLIC\NDIR F:\TNDIR\BETA.TXT > F:\NDCMP\OUT\N02_BETA.OUT
ECHO === N03 DATES === >> F:\NDCMP\RUN.LOG
NPUBLIC\NDIR F:\TNDIR /DATES > F:\NDCMP\OUT\N03_DATES.OUT
NPUBLIC\NDIR F:\TNDIR\ALPHA.TXT /DATES > F:\NDCMP\OUT\N03_ADATE.OUT
ECHO === N04 RIGHTS === >> F:\NDCMP\RUN.LOG
NPUBLIC\RIGHTS F:\TNDIR > F:\NDCMP\OUT\N04_RGT.OUT
NPUBLIC\NDIR F:\TNDIR /RIGHTS >> F:\NDCMP\OUT\N04_RGT.OUT
NPUBLIC\NDIR F:\TNDIR\ALPHA.TXT /RIGHTS > F:\NDCMP\OUT\N04_RGTA.OUT
ECHO === N05 SET ATTRIBUTES === >> F:\NDCMP\RUN.LOG
NPUBLIC\FLAG F:\TNDIR\ALPHA.TXT +H >> F:\NDCMP\RUN.LOG
NPUBLIC\FLAG F:\TNDIR\BETA.TXT +RO >> F:\NDCMP\RUN.LOG
NPUBLIC\FLAG F:\TNDIR\GAMMA.DAT +Sy +A >> F:\NDCMP\RUN.LOG
NPUBLIC\FLAG F:\TNDIR\ALPHA.TXT > F:\NDCMP\OUT\N05_FLGA.OUT
NPUBLIC\FLAG F:\TNDIR\BETA.TXT > F:\NDCMP\OUT\N05_FLGB.OUT
NPUBLIC\FLAG F:\TNDIR\GAMMA.DAT > F:\NDCMP\OUT\N05_FLGG.OUT
ECHO === N06 NDIR AFTER ATTRIBUTES === >> F:\NDCMP\RUN.LOG
NPUBLIC\NDIR F:\TNDIR > F:\NDCMP\OUT\N06_ATTR.OUT
NPUBLIC\NDIR F:\TNDIR /DATES > F:\NDCMP\OUT\N06_ADAT.OUT
ECHO === N07 ATTRIBUTE FILTERS === >> F:\NDCMP\RUN.LOG
NPUBLIC\NDIR F:\TNDIR /H > F:\NDCMP\OUT\N07_H.OUT
NPUBLIC\NDIR F:\TNDIR /RO > F:\NDCMP\OUT\N07_RO.OUT
NPUBLIC\NDIR F:\TNDIR /SY > F:\NDCMP\OUT\N07_SY.OUT
NPUBLIC\NDIR F:\TNDIR /A > F:\NDCMP\OUT\N07_A.OUT
ECHO === N08 NOT FILTERS === >> F:\NDCMP\RUN.LOG
NPUBLIC\NDIR F:\TNDIR /NOT H > F:\NDCMP\OUT\N08_NOTH.OUT
NPUBLIC\NDIR F:\TNDIR /NOT RO > F:\NDCMP\OUT\N08_NOTR.OUT
ECHO === N09 SORT TESTS === >> F:\NDCMP\RUN.LOG
NPUBLIC\NDIR F:\TNDIR /SORT UN > F:\NDCMP\OUT\N09_SUN.OUT
NPUBLIC\NDIR F:\TNDIR /SORT SI > F:\NDCMP\OUT\N09_SSI.OUT
NPUBLIC\NDIR F:\TNDIR /SORT UP > F:\NDCMP\OUT\N09_SUP.OUT
ECHO === N10 WILDCARDS === >> F:\NDCMP\RUN.LOG
NPUBLIC\NDIR F:\TNDIR\*.TXT > F:\NDCMP\OUT\N10_TXT.OUT
NPUBLIC\NDIR F:\TNDIR\*.DAT > F:\NDCMP\OUT\N10_DAT.OUT
ECHO === N11 FILES ONLY / DIRS ONLY === >> F:\NDCMP\RUN.LOG
NPUBLIC\NDIR F:\TNDIR /FO > F:\NDCMP\OUT\N11_FO.OUT
NPUBLIC\NDIR F:\TNDIR /DO > F:\NDCMP\OUT\N11_DO.OUT
ECHO === N12 SUBDIRECTORY TEST === >> F:\NDCMP\RUN.LOG
NPUBLIC\NDIR F:\TNDIR /SUB > F:\NDCMP\OUT\N12_SUB.OUT
NPUBLIC\NDIR F:\TNDIR\SUBDIR > F:\NDCMP\OUT\N12_SDIR.OUT
ECHO === N14 CLEANUP ATTRIBUTES === >> F:\NDCMP\RUN.LOG
NPUBLIC\FLAG F:\TNDIR\ALPHA.TXT N >> F:\NDCMP\RUN.LOG
NPUBLIC\FLAG F:\TNDIR\BETA.TXT N >> F:\NDCMP\RUN.LOG
NPUBLIC\FLAG F:\TNDIR\GAMMA.DAT N >> F:\NDCMP\RUN.LOG
NPUBLIC\FLAG F:\TNDIR\SUBDIR\SUB.TXT N >> F:\NDCMP\RUN.LOG
NPUBLIC\NDIR F:\TNDIR > F:\NDCMP\OUT\N14_FINAL.OUT
ECHO === SUMMARY === > F:\NDCMP\SUMMARY.TXT
ECHO NDIRTSTA automated Novell NDIR baseline finished. >> F:\NDCMP\SUMMARY.TXT
ECHO. >> F:\NDCMP\SUMMARY.TXT
ECHO Outputs are in F:\NDCMP\OUT. >> F:\NDCMP\SUMMARY.TXT
ECHO Expected highlights: >> F:\NDCMP\SUMMARY.TXT
ECHO - N01_ROOT lists ALPHA.TXT, BETA.TXT, GAMMA.DAT and SUBDIR. >> F:\NDCMP\SUMMARY.TXT
ECHO - N03_DATES shows date fields. >> F:\NDCMP\SUMMARY.TXT
ECHO - N04_RGT shows rights. >> F:\NDCMP\SUMMARY.TXT
ECHO - N05_FLG* shows H, RO, SY/A attribute setup. >> F:\NDCMP\SUMMARY.TXT
ECHO - N07_* filters isolate attributes. >> F:\NDCMP\SUMMARY.TXT
ECHO - N09_* sort modes run without error. >> F:\NDCMP\SUMMARY.TXT
ECHO - N10_TXT lists TXT files; N10_DAT lists GAMMA.DAT. >> F:\NDCMP\SUMMARY.TXT
ECHO - N11_FO/N11_DO separate files/directories where supported. >> F:\NDCMP\SUMMARY.TXT
ECHO - N12_SUB includes SUBDIR\SUB.TXT. >> F:\NDCMP\SUMMARY.TXT
ECHO Optional pack results with NDIRZIP.BAT. >> F:\NDCMP\SUMMARY.TXT
ECHO.
ECHO NDIRTSTA fertig.
ECHO Ergebnisse liegen in F:\NDCMP
ECHO Optional: NDIRZIP ausfuehren.
ECHO.

27
test/ndir/NDIRZIP.BAT Normal file
View File

@@ -0,0 +1,27 @@
@ECHO OFF
REM NDIRZIP.BAT
REM Optional packer for NDIRTSTA result files.
REM Requires ZIP.EXE in PATH or current directory.
F:
CD \NDCMP
IF EXIST NDIRTSTA.ZIP DEL NDIRTSTA.ZIP
IF EXIST ZIP.LOG DEL ZIP.LOG
ECHO Creating NDIRTSTA.ZIP > ZIP.LOG
ZIP -r NDIRTSTA.ZIP RUN.LOG SUMMARY.TXT OUT >> ZIP.LOG
REM Cleanup generated test directories after ZIP.
REM Keep the CMP/result directory because it contains the ZIP and ZIP.LOG.
ECHO Cleaning generated test directories... >> ZIP.LOG
IF EXIST \TNDIR\NUL DELTREE /Y \TNDIR >> ZIP.LOG
IF EXIST \NDIRTEST\NUL DELTREE /Y \NDIRTEST >> ZIP.LOG
CD \
ECHO.
ECHO ZIP step finished.
ECHO Check:
ECHO F:\NDCMP\NDIRTSTA.ZIP
ECHO F:\NDCMP\ZIP.LOG
ECHO.

56
test/ndir/README.md Normal file
View File

@@ -0,0 +1,56 @@
# NDIR automated test
Automated Novell-only baseline for `NPUBLIC\NDIR`.
## Run
```text
NDIRTSTA
```
Results:
```text
F:\NDCMP\RUN.LOG
F:\NDCMP\SUMMARY.TXT
F:\NDCMP\OUT\*.OUT
```
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`, `/NOT RO`
- sorts `/SORT UN`, `/SORT SI`, `/SORT UP`
- wildcards `*.TXT`, `*.DAT`
- `/FO`, `/DO`
- `/SUB`
- cleanup