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:
31
test/revoke/README.md
Normal file
31
test/revoke/README.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# REVOKE baseline test
|
||||
|
||||
Scripts:
|
||||
|
||||
- `RVKSTA.BAT` creates `F:\RVKTEST`, uses Novell `\NPUBLIC\GRANT` for setup, then captures Novell `\NPUBLIC\REVOKE` output into `F:\RVKCMP\OUT`. User `MARIO` is used as trustee target.
|
||||
- `RVKZIP.BAT` packages `RUN.LOG`, `SUMMARY.TXT`, `SETUP`, and `OUT` as `F:\RVKCMP\RVKSTA.ZIP`.
|
||||
|
||||
Run as `SUPERVISOR` or an equivalent user with Access Control rights on `F:\RVKTEST`.
|
||||
|
||||
Covered cases:
|
||||
|
||||
- help and no-argument grammar
|
||||
- normal directory revoke
|
||||
- `ALL` revoke / trustee removal
|
||||
- `/SUBDIRECTORIES` with trustees placed directly on child directories
|
||||
- `/FILES` on an explicit file and on a directory file set
|
||||
- relative path invocation from inside the test directory while invoking `\NPUBLIC\REVOKE` absolutely
|
||||
- no trustee, missing user, missing path behavior, `/FILES` plus `/SUBDIRECTORIES` option-combination behavior, and bad grammar
|
||||
|
||||
This test is still Novell-baseline-only. Later comparison scripts should run the same command set through `NPUBLIC` and `PUBLIC` with normalized output.
|
||||
|
||||
Notes from the first baseline run:
|
||||
|
||||
- `REVOKE /SUBDIRECTORIES` did not exercise child paths unless trustees existed on the child directories themselves, so `D20` now uses `SUBTST\S1` and `SUBTST\S2` with direct trustee setup.
|
||||
- Novell `REVOKE` may report `No trustee for the specified directory.` for a missing path before a separate missing-path diagnostic is reached; `D92` records that baseline behavior.
|
||||
- `D93` now uses an independent tree with directory, file, and subdirectory trustees so the `/FILES /SUBDIRECTORIES` option combination is tested without being masked by missing trustee setup.
|
||||
Retest focus after the fix:
|
||||
|
||||
- `D20_SUBDIRS_REVOKE_CE.OUT` should no longer be masked by a missing trustee on the named root.
|
||||
- `D92_MISSING_PATH.OUT` records the exact Novell diagnostic for a missing path, even if that diagnostic is still `No trustee for the specified directory.`
|
||||
- `D93_FILES_AND_SUBDIRS.OUT` runs on a prepared tree with directory, file, and subdirectory trustees, so the `/FILES /SUBDIRECTORIES` combination is no longer masked by setup.
|
||||
121
test/revoke/RVKSTA.BAT
Normal file
121
test/revoke/RVKSTA.BAT
Normal file
@@ -0,0 +1,121 @@
|
||||
@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.
|
||||
26
test/revoke/RVKZIP.BAT
Normal file
26
test/revoke/RVKZIP.BAT
Normal file
@@ -0,0 +1,26 @@
|
||||
@ECHO OFF
|
||||
REM RVKZIP.BAT
|
||||
REM Optional packer for RVKSTA result files.
|
||||
REM Requires ZIP.EXE in PATH or current directory.
|
||||
|
||||
F:
|
||||
CD \RVKCMP
|
||||
|
||||
IF EXIST RVKSTA.ZIP DEL RVKSTA.ZIP
|
||||
IF EXIST ZIP.LOG DEL ZIP.LOG
|
||||
|
||||
ECHO Creating RVKSTA.ZIP > ZIP.LOG
|
||||
ZIP -r RVKSTA.ZIP RUN.LOG SUMMARY.TXT SETUP 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 \RVKTEST\NUL DELTREE /Y \RVKTEST >> ZIP.LOG
|
||||
CD \
|
||||
ECHO.
|
||||
ECHO ZIP step finished.
|
||||
ECHO Check:
|
||||
ECHO F:\RVKCMP\RVKSTA.ZIP
|
||||
ECHO F:\RVKCMP\ZIP.LOG
|
||||
ECHO.
|
||||
Reference in New Issue
Block a user