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

116
test/remove/RMVSTA.BAT Normal file
View File

@@ -0,0 +1,116 @@
@ECHO OFF
REM RMVSTA.BAT
REM Automated REMOVE baseline test for MARS NWE.
REM
REM Run as SUPERVISOR or a user with Access Control on F:\RMVTEST.
REM Uses \NPUBLIC\REMOVE as Novell baseline.
REM Setup uses \NPUBLIC\GRANT to create trustee assignments.
REM
REM Result tree:
REM F:\RMVCMP
REM Test tree:
REM F:\RMVTEST
F:
CD \
REM --- Clean generated test/result directories (contents only). ---
IF EXIST RMVTEST\NUL DELTREE /Y RMVTEST\*.*
IF EXIST RMVCMP\NUL DELTREE /Y RMVCMP\*.*
IF NOT EXIST RMVTEST\NUL MD RMVTEST
IF NOT EXIST RMVTEST\ONE\NUL MD RMVTEST\ONE
IF NOT EXIST RMVTEST\TREE\NUL MD RMVTEST\TREE
IF NOT EXIST RMVTEST\TREE\SUB1\NUL MD RMVTEST\TREE\SUB1
IF NOT EXIST RMVTEST\TREE\SUB2\NUL MD RMVTEST\TREE\SUB2
IF NOT EXIST RMVTEST\FILES\NUL MD RMVTEST\FILES
IF NOT EXIST RMVTEST\OPTBOTH\NUL MD RMVTEST\OPTBOTH
IF NOT EXIST RMVTEST\OPTBOTH\SUB\NUL MD RMVTEST\OPTBOTH\SUB
IF NOT EXIST RMVCMP\NUL MD RMVCMP
IF NOT EXIST RMVCMP\OUT\NUL MD RMVCMP\OUT
IF NOT EXIST RMVCMP\SETUP\NUL MD RMVCMP\SETUP
ECHO REMOVE ROOT FILE > F:\RMVTEST\ROOT.TXT
ECHO REMOVE ONE FILE > F:\RMVTEST\ONE\ONE.TXT
ECHO REMOVE TREE ROOT FILE > F:\RMVTEST\TREE\TROOT.TXT
ECHO REMOVE SUB1 FILE > F:\RMVTEST\TREE\SUB1\SUB1.TXT
ECHO REMOVE SUB2 FILE > F:\RMVTEST\TREE\SUB2\SUB2.TXT
ECHO REMOVE FILE A > F:\RMVTEST\FILES\A.TXT
ECHO REMOVE FILE B > F:\RMVTEST\FILES\B.TXT
ECHO REMOVE OPT ROOT > F:\RMVTEST\OPTBOTH\O.TXT
ECHO REMOVE OPT SUB > F:\RMVTEST\OPTBOTH\SUB\S.TXT
ECHO RMVSTA REMOVE baseline test > F:\RMVCMP\RUN.LOG
ECHO Run this as SUPERVISOR or equivalent. >> F:\RMVCMP\RUN.LOG
ECHO Captures \NPUBLIC\REMOVE output against user MARIO. >> F:\RMVCMP\RUN.LOG
ECHO Setup uses \NPUBLIC\GRANT. >> F:\RMVCMP\RUN.LOG
ECHO. >> F:\RMVCMP\RUN.LOG
ECHO === D01 usage/help === >> F:\RMVCMP\RUN.LOG
\NPUBLIC\REMOVE /? > F:\RMVCMP\OUT\D01_HELP.OUT
ECHO === D02 no arguments === >> F:\RMVCMP\RUN.LOG
\NPUBLIC\REMOVE > F:\RMVCMP\OUT\D02_NOARGS.OUT
ECHO === D10 remove USER MARIO from directory === >> F:\RMVCMP\RUN.LOG
\NPUBLIC\GRANT R F FOR F:\RMVTEST\ONE TO USER MARIO > F:\RMVCMP\SETUP\S10_GRANT.OUT
\NPUBLIC\REMOVE USER MARIO FROM F:\RMVTEST\ONE > F:\RMVCMP\OUT\D10_DIR_USER.OUT
ECHO === D11 remove MARIO without USER keyword === >> F:\RMVCMP\RUN.LOG
\NPUBLIC\GRANT R F FOR F:\RMVTEST\ONE TO USER MARIO > F:\RMVCMP\SETUP\S11_GRANT.OUT
\NPUBLIC\REMOVE MARIO FROM F:\RMVTEST\ONE > F:\RMVCMP\OUT\D11_DIR_IMPLICIT.OUT
ECHO === D20 remove recursively from subdirectories === >> F:\RMVCMP\RUN.LOG
\NPUBLIC\GRANT R F FOR F:\RMVTEST\TREE TO USER MARIO > F:\RMVCMP\SETUP\S20_ROOT.OUT
\NPUBLIC\GRANT R F FOR F:\RMVTEST\TREE\SUB1 TO USER MARIO > F:\RMVCMP\SETUP\S20_SUB1.OUT
\NPUBLIC\GRANT R F FOR F:\RMVTEST\TREE\SUB2 TO USER MARIO > F:\RMVCMP\SETUP\S20_SUB2.OUT
\NPUBLIC\REMOVE USER MARIO FROM F:\RMVTEST\TREE /SUBDIRS > F:\RMVCMP\OUT\D20_SUBDIRS.OUT
ECHO === D21 remove from explicit file using /FILES === >> F:\RMVCMP\RUN.LOG
\NPUBLIC\GRANT R F FOR F:\RMVTEST\ONE\ONE.TXT TO USER MARIO /FILES > F:\RMVCMP\SETUP\S21_FILE.OUT
\NPUBLIC\REMOVE USER MARIO FROM F:\RMVTEST\ONE\ONE.TXT /FILES > F:\RMVCMP\OUT\D21_FILE.OUT
ECHO === D22 remove from all files in directory using /FILES === >> F:\RMVCMP\RUN.LOG
\NPUBLIC\GRANT R F FOR F:\RMVTEST\FILES\A.TXT TO USER MARIO /FILES > F:\RMVCMP\SETUP\S22_A.OUT
\NPUBLIC\GRANT R F FOR F:\RMVTEST\FILES\B.TXT TO USER MARIO /FILES > F:\RMVCMP\SETUP\S22_B.OUT
\NPUBLIC\REMOVE USER MARIO FROM F:\RMVTEST\FILES /FILES > F:\RMVCMP\OUT\D22_FILES_DIR.OUT
ECHO === D30 relative path from F:\RMVTEST === >> F:\RMVCMP\RUN.LOG
\NPUBLIC\GRANT R F FOR F:\RMVTEST\ONE TO USER MARIO > F:\RMVCMP\SETUP\S30_GRANT.OUT
CD \RMVTEST
\NPUBLIC\REMOVE USER MARIO FROM ONE > F:\RMVCMP\OUT\D30_REL_DIR.OUT
CD \
ECHO === D90 no trustee === >> F:\RMVCMP\RUN.LOG
\NPUBLIC\REMOVE USER MARIO FROM F:\RMVTEST\EMPTY > F:\RMVCMP\OUT\D90_NO_TRUSTEE.OUT
ECHO === D91 missing user === >> F:\RMVCMP\RUN.LOG
\NPUBLIC\REMOVE USER NO_SUCH_USER FROM F:\RMVTEST\ONE > F:\RMVCMP\OUT\D91_MISSING_USER.OUT
ECHO === D92 missing path === >> F:\RMVCMP\RUN.LOG
\NPUBLIC\REMOVE USER MARIO FROM F:\RMVTEST\MISSING > F:\RMVCMP\OUT\D92_MISSING_PATH.OUT
ECHO === D93 /FILES and /SUBDIRS together === >> F:\RMVCMP\RUN.LOG
\NPUBLIC\GRANT R F FOR F:\RMVTEST\OPTBOTH TO USER MARIO > F:\RMVCMP\SETUP\S93_DIR.OUT
\NPUBLIC\GRANT R F FOR F:\RMVTEST\OPTBOTH\SUB TO USER MARIO > F:\RMVCMP\SETUP\S93_SUB.OUT
\NPUBLIC\GRANT R F FOR F:\RMVTEST\OPTBOTH\O.TXT TO USER MARIO /FILES > F:\RMVCMP\SETUP\S93_FILE.OUT
\NPUBLIC\REMOVE USER MARIO FROM F:\RMVTEST\OPTBOTH /FILES /SUBDIRS > F:\RMVCMP\OUT\D93_BOTH_OPTS.OUT
ECHO === D94 bad grammar / missing name === >> F:\RMVCMP\RUN.LOG
\NPUBLIC\REMOVE USER FROM F:\RMVTEST\ONE > F:\RMVCMP\OUT\D94_BAD_GRAMMAR.OUT
ECHO === SUMMARY === > F:\RMVCMP\SUMMARY.TXT
ECHO RMVSTA REMOVE baseline finished. >> F:\RMVCMP\SUMMARY.TXT
ECHO. >> F:\RMVCMP\SUMMARY.TXT
ECHO Expected coverage: >> F:\RMVCMP\SUMMARY.TXT
ECHO - D10-D11 capture normal directory trustee removal syntax. >> F:\RMVCMP\SUMMARY.TXT
ECHO - D20 captures /SUBDIRS behavior with trustees on start and child dirs. >> F:\RMVCMP\SUMMARY.TXT
ECHO - D21-D22 capture /FILES behavior for explicit file and directory file set. >> F:\RMVCMP\SUMMARY.TXT
ECHO - D30 captures relative path behavior with absolute \NPUBLIC\REMOVE invocation. >> F:\RMVCMP\SUMMARY.TXT
ECHO - D90-D94 capture error and grammar cases. >> F:\RMVCMP\SUMMARY.TXT
ECHO. >> F:\RMVCMP\SUMMARY.TXT
ECHO Optional: RMVZIP ausfuehren. >> F:\RMVCMP\SUMMARY.TXT
ECHO RMVSTA fertig.
ECHO Ergebnisse liegen in F:\RMVCMP
ECHO Optional: RMVZIP ausfuehren.