Files
mars-dosutils/test/revoke/RVKSTA.BAT
Mario Fetka f214e89d69 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
2026-05-27 13:31:46 +02:00

122 lines
6.3 KiB
Batchfile

@ECHO OFF
REM RVKSTA.BAT
REM Automated REVOKE baseline test for MARS NWE.
REM
REM Run as SUPERVISOR or a user with Access Control on F:\RVKTEST.
REM Uses \NPUBLIC\GRANT for setup and \NPUBLIC\REVOKE as Novell baseline.
REM
REM Result tree:
REM F:\RVKCMP
REM Test tree:
REM F:\RVKTEST
F:
CD \
REM --- Clean generated test/result directories (contents only). ---
IF EXIST RVKTEST\NUL DELTREE /Y RVKTEST\*.*
IF EXIST RVKCMP\NUL DELTREE /Y RVKCMP\*.*
IF NOT EXIST RVKTEST\NUL MD RVKTEST
IF NOT EXIST RVKTEST\ONE\NUL MD RVKTEST\ONE
IF NOT EXIST RVKTEST\TREE\NUL MD RVKTEST\TREE
IF NOT EXIST RVKTEST\TREE\SUB1\NUL MD RVKTEST\TREE\SUB1
IF NOT EXIST RVKTEST\TREE\SUB2\NUL MD RVKTEST\TREE\SUB2
IF NOT EXIST RVKTEST\SUBTST\NUL MD RVKTEST\SUBTST
IF NOT EXIST RVKTEST\SUBTST\S1\NUL MD RVKTEST\SUBTST\S1
IF NOT EXIST RVKTEST\SUBTST\S2\NUL MD RVKTEST\SUBTST\S2
IF NOT EXIST RVKTEST\OPTBOTH\NUL MD RVKTEST\OPTBOTH
IF NOT EXIST RVKTEST\OPTBOTH\SUB\NUL MD RVKTEST\OPTBOTH\SUB
IF NOT EXIST RVKTEST\FILES\NUL MD RVKTEST\FILES
IF NOT EXIST RVKTEST\EMPTY\NUL MD RVKTEST\EMPTY
IF NOT EXIST RVKCMP\NUL MD RVKCMP
IF NOT EXIST RVKCMP\OUT\NUL MD RVKCMP\OUT
IF NOT EXIST RVKCMP\SETUP\NUL MD RVKCMP\SETUP
ECHO REVOKE ONE FILE > F:\RVKTEST\ONE\ONE.TXT
ECHO REVOKE TREE FILE > F:\RVKTEST\TREE\TROOT.TXT
ECHO REVOKE SUB1 FILE > F:\RVKTEST\TREE\SUB1\SUB1.TXT
ECHO REVOKE SUB2 FILE > F:\RVKTEST\TREE\SUB2\SUB2.TXT
ECHO REVOKE SUBDIRECTORY S1 > F:\RVKTEST\SUBTST\S1\S1.TXT
ECHO REVOKE SUBDIRECTORY S2 > F:\RVKTEST\SUBTST\S2\S2.TXT
ECHO REVOKE OPTION ROOT > F:\RVKTEST\OPTBOTH\ROOT.TXT
ECHO REVOKE OPTION SUB > F:\RVKTEST\OPTBOTH\SUB\SUB.TXT
ECHO REVOKE FILE A > F:\RVKTEST\FILES\A.TXT
ECHO REVOKE FILE B > F:\RVKTEST\FILES\B.TXT
ECHO RVKSTA REVOKE baseline test > F:\RVKCMP\RUN.LOG
ECHO Run this as SUPERVISOR or equivalent. >> F:\RVKCMP\RUN.LOG
ECHO Setup uses \NPUBLIC\GRANT, test captures \NPUBLIC\REVOKE output for user MARIO. >> F:\RVKCMP\RUN.LOG
ECHO. >> F:\RVKCMP\RUN.LOG
ECHO === SETUP grants === >> F:\RVKCMP\RUN.LOG
\NPUBLIC\GRANT R W C E M F A FOR F:\RVKTEST\ONE TO USER MARIO > F:\RVKCMP\SETUP\S01_ONE_GRANT.OUT
\NPUBLIC\GRANT R W C E M F A FOR F:\RVKTEST\TREE TO USER MARIO /SUBDIRECTORIES > F:\RVKCMP\SETUP\S02_TREE_GRANT.OUT
\NPUBLIC\GRANT R W C E M F A FOR F:\RVKTEST\FILES\A.TXT TO USER MARIO /FILES > F:\RVKCMP\SETUP\S03_FILE_A_GRANT.OUT
\NPUBLIC\GRANT R W C E M F A FOR F:\RVKTEST\FILES\B.TXT TO USER MARIO /FILES > F:\RVKCMP\SETUP\S04_FILE_B_GRANT.OUT
REM Direct subdirectory trustees for D20, because REVOKE /SUBDIRECTORIES acts on trustees below the named directory.
\NPUBLIC\GRANT R W C E M F A FOR F:\RVKTEST\SUBTST\S1 TO USER MARIO > F:\RVKCMP\SETUP\S05_SUBTST_S1_GRANT.OUT
\NPUBLIC\GRANT R W C E M F A FOR F:\RVKTEST\SUBTST\S2 TO USER MARIO > F:\RVKCMP\SETUP\S06_SUBTST_S2_GRANT.OUT
REM Independent tree with both files and subdirectories for D93 option-combination behavior.
\NPUBLIC\GRANT R W C E M F A FOR F:\RVKTEST\OPTBOTH TO USER MARIO > F:\RVKCMP\SETUP\S07_OPTBOTH_ROOT_GRANT.OUT
\NPUBLIC\GRANT R W C E M F A FOR F:\RVKTEST\OPTBOTH\SUB TO USER MARIO > F:\RVKCMP\SETUP\S08_OPTBOTH_SUB_GRANT.OUT
\NPUBLIC\GRANT R W C E M F A FOR F:\RVKTEST\OPTBOTH\ROOT.TXT TO USER MARIO /FILES > F:\RVKCMP\SETUP\S09_OPTBOTH_FILE_GRANT.OUT
ECHO === D01 usage/help === >> F:\RVKCMP\RUN.LOG
\NPUBLIC\REVOKE /? > F:\RVKCMP\OUT\D01_HELP.OUT
ECHO === D02 no arguments === >> F:\RVKCMP\RUN.LOG
\NPUBLIC\REVOKE > F:\RVKCMP\OUT\D02_NOARGS.OUT
ECHO === D10 revoke W M from directory === >> F:\RVKCMP\RUN.LOG
\NPUBLIC\REVOKE W M FOR F:\RVKTEST\ONE FROM USER MARIO > F:\RVKCMP\OUT\D10_DIR_REVOKE_WM.OUT
ECHO === D11 revoke ALL from directory / remove trustee === >> F:\RVKCMP\RUN.LOG
\NPUBLIC\REVOKE ALL FOR F:\RVKTEST\ONE FROM USER MARIO > F:\RVKCMP\OUT\D11_DIR_REVOKE_ALL.OUT
ECHO === D20 revoke C E recursively from direct subdirectory trustees === >> F:\RVKCMP\RUN.LOG
\NPUBLIC\REVOKE C E FOR F:\RVKTEST\SUBTST FROM USER MARIO /SUBDIRECTORIES > F:\RVKCMP\OUT\D20_SUBDIRS_REVOKE_CE.OUT
ECHO === D21 revoke R from one explicit file === >> F:\RVKCMP\RUN.LOG
\NPUBLIC\REVOKE R FOR F:\RVKTEST\FILES\A.TXT FROM USER MARIO /FILES > F:\RVKCMP\OUT\D21_FILE_REVOKE_R.OUT
ECHO === D22 revoke W from files in a directory === >> F:\RVKCMP\RUN.LOG
\NPUBLIC\REVOKE W FOR F:\RVKTEST\FILES FROM USER MARIO /FILES > F:\RVKCMP\OUT\D22_FILES_DIR_REVOKE_W.OUT
ECHO === D30 relative path from F:\RVKTEST === >> F:\RVKCMP\RUN.LOG
\NPUBLIC\GRANT R W C E M F A FOR F:\RVKTEST\ONE TO USER MARIO > F:\RVKCMP\SETUP\S30_ONE_REGRANT.OUT
CD \RVKTEST
\NPUBLIC\REVOKE W FOR ONE FROM USER MARIO > F:\RVKCMP\OUT\D30_REL_DIR_REVOKE_W.OUT
CD \
ECHO === D90 no trustee on directory === >> F:\RVKCMP\RUN.LOG
\NPUBLIC\REVOKE R FOR F:\RVKTEST\EMPTY FROM USER MARIO > F:\RVKCMP\OUT\D90_NO_TRUSTEE.OUT
ECHO === D91 missing user === >> F:\RVKCMP\RUN.LOG
\NPUBLIC\REVOKE R FOR F:\RVKTEST\ONE FROM USER NO_SUCH_USER > F:\RVKCMP\OUT\D91_MISSING_USER.OUT
ECHO === D92 missing path === >> F:\RVKCMP\RUN.LOG
\NPUBLIC\REVOKE R FOR F:\RVKTEST\MISSING\NOFILE.TXT FROM USER MARIO > F:\RVKCMP\OUT\D92_MISSING_PATH.OUT
ECHO === D93 both /FILES and /SUBDIRECTORIES === >> F:\RVKCMP\RUN.LOG
\NPUBLIC\REVOKE R FOR F:\RVKTEST\OPTBOTH FROM USER MARIO /FILES /SUBDIRECTORIES > F:\RVKCMP\OUT\D93_FILES_AND_SUBDIRS.OUT
ECHO === D94 bad grammar / missing FROM === >> F:\RVKCMP\RUN.LOG
\NPUBLIC\REVOKE R FOR F:\RVKTEST\ONE USER MARIO > F:\RVKCMP\OUT\D94_BAD_GRAMMAR.OUT
ECHO === SUMMARY === > F:\RVKCMP\SUMMARY.TXT
ECHO RVKSTA REVOKE baseline finished. >> F:\RVKCMP\SUMMARY.TXT
ECHO. >> F:\RVKCMP\SUMMARY.TXT
ECHO Expected: >> F:\RVKCMP\SUMMARY.TXT
ECHO - D10/D11 capture normal directory revoke and trustee removal. >> F:\RVKCMP\SUMMARY.TXT
ECHO - D20 captures /SUBDIRECTORIES behavior using direct trustees on child directories. >> F:\RVKCMP\SUMMARY.TXT
ECHO - D21/D22 capture /FILES behavior for explicit files and directory file sets. >> F:\RVKCMP\SUMMARY.TXT
ECHO - D30 captures relative path behavior with absolute \NPUBLIC\REVOKE invocation. >> F:\RVKCMP\SUMMARY.TXT
ECHO - D90-D94 capture no-trustee, missing-user, missing-path/Novell no-trustee behavior, option combination, and grammar errors. >> F:\RVKCMP\SUMMARY.TXT
ECHO. >> F:\RVKCMP\SUMMARY.TXT
ECHO Optional: RVKZIP ausfuehren. >> F:\RVKCMP\SUMMARY.TXT
ECHO RVKSTA fertig.
ECHO Ergebnisse liegen in F:\RVKCMP
ECHO Optional: RVKZIP ausfuehren.