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
This commit is contained in:
@@ -2,16 +2,21 @@
|
||||
REM CIXSTA.BAT
|
||||
REM Automated CREATOR/xattr test for MARS NWE.
|
||||
REM
|
||||
REM Uses PUBLIC\CREATOR.EXE to set creator/modifier/archive metadata through
|
||||
REM the same NCP22/25 Set Directory/File Information path as FILER.
|
||||
REM PART1 runs as SUPERVISOR, prepares data and queues CIXC via DLYSTRT.
|
||||
REM PART2 runs after CIXC has logged SUPERVISOR back in and collects results
|
||||
REM from C:\CIXTMP into F:\CIXCMP.
|
||||
REM
|
||||
REM Run as SUPERVISOR.
|
||||
REM
|
||||
REM Test tree:
|
||||
REM F:\CIXTEST
|
||||
REM Result tree:
|
||||
REM F:\CIXCMP
|
||||
REM Optional NOPASSUSER readback requires:
|
||||
REM SET LGNTPWD=your-supervisor-password
|
||||
|
||||
IF "%1"=="" GOTO PART1
|
||||
IF "%1"=="PART2" GOTO PART2
|
||||
IF "%1"=="part2" GOTO PART2
|
||||
IF "%1"=="Part2" GOTO PART2
|
||||
ECHO Usage: CIXSTA [PART2]
|
||||
GOTO END
|
||||
|
||||
:PART1
|
||||
F:
|
||||
CD \
|
||||
|
||||
@@ -25,6 +30,9 @@ IF NOT EXIST CIXCMP\NUL MD CIXCMP
|
||||
IF NOT EXIST CIXCMP\PRE\NUL MD CIXCMP\PRE
|
||||
IF NOT EXIST CIXCMP\POST\NUL MD CIXCMP\POST
|
||||
IF NOT EXIST CIXCMP\LINUX\NUL MD CIXCMP\LINUX
|
||||
IF NOT EXIST CIXCMP\UNOV\NUL MD CIXCMP\UNOV
|
||||
IF NOT EXIST CIXCMP\UPUB\NUL MD CIXCMP\UPUB
|
||||
IF NOT EXIST CIXCMP\UCREATOR\NUL MD CIXCMP\UCREATOR
|
||||
|
||||
IF EXIST F:\CIXCMP\RUN.LOG DEL F:\CIXCMP\RUN.LOG
|
||||
IF EXIST F:\CIXCMP\SUMMARY.TXT DEL F:\CIXCMP\SUMMARY.TXT
|
||||
@@ -34,6 +42,15 @@ IF EXIST F:\CIXCMP\ZIP.LOG DEL F:\CIXCMP\ZIP.LOG
|
||||
IF EXIST F:\CIXCMP\PRE\*.OUT DEL F:\CIXCMP\PRE\*.OUT
|
||||
IF EXIST F:\CIXCMP\POST\*.OUT DEL F:\CIXCMP\POST\*.OUT
|
||||
IF EXIST F:\CIXCMP\LINUX\*.TXT DEL F:\CIXCMP\LINUX\*.TXT
|
||||
IF EXIST F:\CIXCMP\UNOV\*.OUT DEL F:\CIXCMP\UNOV\*.OUT
|
||||
IF EXIST F:\CIXCMP\UPUB\*.OUT DEL F:\CIXCMP\UPUB\*.OUT
|
||||
IF EXIST F:\CIXCMP\UCREATOR\*.OUT DEL F:\CIXCMP\UCREATOR\*.OUT
|
||||
IF EXIST F:\CIXCMP\UCOMP.LOG DEL F:\CIXCMP\UCOMP.LOG
|
||||
IF EXIST F:\CIXCMP\HELPER.TXT DEL F:\CIXCMP\HELPER.TXT
|
||||
IF EXIST F:\CIXCMP\ULOG1.OUT DEL F:\CIXCMP\ULOG1.OUT
|
||||
IF EXIST F:\CIXCMP\ULOGIN.OUT DEL F:\CIXCMP\ULOGIN.OUT
|
||||
IF EXIST F:\CIXCMP\ULOG2.OUT DEL F:\CIXCMP\ULOG2.OUT
|
||||
IF EXIST F:\CIXCMP\ULGSUP.OUT DEL F:\CIXCMP\ULGSUP.OUT
|
||||
|
||||
REM Reset files from previous runs.
|
||||
IF EXIST F:\CIXTEST\SUP\S_SUP.TXT DEL F:\CIXTEST\SUP\S_SUP.TXT
|
||||
@@ -43,6 +60,7 @@ IF EXIST F:\CIXTEST\SUP\S_ALL.TXT DEL F:\CIXTEST\SUP\S_ALL.TXT
|
||||
ECHO CIXSTA creator/xattr test using PUBLIC\CREATOR > F:\CIXCMP\RUN.LOG
|
||||
ECHO Run this as SUPERVISOR. >> F:\CIXCMP\RUN.LOG
|
||||
ECHO Date/time stamp skipped to avoid DOS prompt. >> F:\CIXCMP\RUN.LOG
|
||||
ECHO Optional user-context target: NOPASSUSER >> F:\CIXCMP\RUN.LOG
|
||||
ECHO. >> F:\CIXCMP\RUN.LOG
|
||||
|
||||
ECHO SUP CREATOR FILE > F:\CIXTEST\SUP\S_SUP.TXT
|
||||
@@ -83,6 +101,68 @@ NPUBLIC\FLAG F:\CIXTEST\SUP\S_SUP.TXT > F:\CIXCMP\POST\FSUP.OUT
|
||||
NPUBLIC\FLAG F:\CIXTEST\SUP\S_ARCH.TXT > F:\CIXCMP\POST\FARCH.OUT
|
||||
NPUBLIC\FLAG F:\CIXTEST\SUP\S_ALL.TXT > F:\CIXCMP\POST\FALL.OUT
|
||||
|
||||
REM Allow NOPASSUSER to read this tree for optional user-context readback.
|
||||
REM Creator metadata is set by SUPERVISOR above; the helper only verifies
|
||||
REM that /SHOW and effective rights look sane for a normal user.
|
||||
\NPUBLIC\GRANT R F FOR F:\CIXTEST\SUP TO USER NOPASSUSER > F:\CIXCMP\POST\UGRANTD.OUT
|
||||
\NPUBLIC\GRANT R F FOR F:\CIXTEST\SUP\S_SUP.TXT TO USER NOPASSUSER > F:\CIXCMP\POST\UGRNTS.OUT
|
||||
\NPUBLIC\GRANT R F FOR F:\CIXTEST\SUP\S_ARCH.TXT TO USER NOPASSUSER > F:\CIXCMP\POST\UGRNTA.OUT
|
||||
\NPUBLIC\GRANT R F FOR F:\CIXTEST\SUP\S_ALL.TXT TO USER NOPASSUSER > F:\CIXCMP\POST\UGRNTL.OUT
|
||||
|
||||
REM --- Queue delayed NOPASSUSER readback helper. ---
|
||||
IF "%LGNTPWD%"=="" GOTO NEEDPWD
|
||||
IF EXIST C:\CIXTMP\*.* DELTREE /Y C:\CIXTMP
|
||||
IF NOT EXIST C:\CIXTMP MD C:\CIXTMP
|
||||
IF NOT EXIST C:\CIXTMP\UNOV MD C:\CIXTMP\UNOV
|
||||
IF NOT EXIST C:\CIXTMP\UPUB MD C:\CIXTMP\UPUB
|
||||
IF NOT EXIST C:\CIXTMP\UCREATOR MD C:\CIXTMP\UCREATOR
|
||||
|
||||
REM DLYSTRT must be local because F: disappears after LOGOUT.
|
||||
IF EXIST \PUBLIC\DLYSTRT.EXE COPY \PUBLIC\DLYSTRT.EXE C:\CIXTMP > NUL
|
||||
IF EXIST C:\CIXTMP\DLYSTRT.EXE GOTO HAVEDLY
|
||||
ECHO ERROR: DLYSTRT.EXE not found. >> F:\CIXCMP\RUN.LOG
|
||||
ECHO ERROR: DLYSTRT.EXE not found.
|
||||
GOTO END
|
||||
|
||||
:HAVEDLY
|
||||
REM Only the helper and DLYSTRT must be local. CIXSTA stays on F:\ and is
|
||||
REM started as F:\CIXSTA.BAT PART2 after the SUPERVISOR re-login.
|
||||
COPY F:\CIXC.BAT C:\CIXTMP\CIXC.BAT > NUL
|
||||
|
||||
C:
|
||||
CD \CIXTMP
|
||||
DLYSTRT /T:2 CIXC.BAT
|
||||
ECHO CIXC queued via DLYSTRT. >> F:\CIXCMP\RUN.LOG
|
||||
ECHO CIXC wurde via DLYSTRT gestartet.
|
||||
ECHO Nach automatischem Re-Login wird CIXSTA PART2 gestartet.
|
||||
GOTO END
|
||||
|
||||
:PART2
|
||||
F:
|
||||
CD \
|
||||
IF NOT EXIST CIXCMP\UNOV MD CIXCMP\UNOV
|
||||
IF NOT EXIST CIXCMP\UPUB MD CIXCMP\UPUB
|
||||
IF NOT EXIST CIXCMP\UCREATOR MD CIXCMP\UCREATOR
|
||||
|
||||
IF EXIST C:\CIXTMP\UNOV\*.* COPY C:\CIXTMP\UNOV\*.* F:\CIXCMP\UNOV > NUL
|
||||
IF EXIST C:\CIXTMP\UPUB\*.* COPY C:\CIXTMP\UPUB\*.* F:\CIXCMP\UPUB > NUL
|
||||
IF EXIST C:\CIXTMP\UCREATOR\*.* COPY C:\CIXTMP\UCREATOR\*.* F:\CIXCMP\UCREATOR > NUL
|
||||
IF EXIST C:\CIXTMP\HELPER.TXT COPY C:\CIXTMP\HELPER.TXT F:\CIXCMP\HELPER.TXT > NUL
|
||||
IF EXIST C:\CIXTMP\ULOG1.OUT COPY C:\CIXTMP\ULOG1.OUT F:\CIXCMP\ULOG1.OUT > NUL
|
||||
IF EXIST C:\CIXTMP\ULOGIN.OUT COPY C:\CIXTMP\ULOGIN.OUT F:\CIXCMP\ULOGIN.OUT > NUL
|
||||
IF EXIST C:\CIXTMP\ULOG2.OUT COPY C:\CIXTMP\ULOG2.OUT F:\CIXCMP\ULOG2.OUT > NUL
|
||||
IF EXIST C:\CIXTMP\ULGSUP.OUT COPY C:\CIXTMP\ULGSUP.OUT F:\CIXCMP\ULGSUP.OUT > NUL
|
||||
|
||||
ECHO === COMPARE NOPASSUSER NOVELL RIGHTS AGAINST PUBLIC RIGHTS === > F:\CIXCMP\UCOMP.LOG
|
||||
ECHO Comparing SUP directory >> F:\CIXCMP\UCOMP.LOG
|
||||
FC F:\CIXCMP\UNOV\SUPRGT.OUT F:\CIXCMP\UPUB\SUPRGT.OUT >> F:\CIXCMP\UCOMP.LOG
|
||||
ECHO Comparing S_SUP.TXT >> F:\CIXCMP\UCOMP.LOG
|
||||
FC F:\CIXCMP\UNOV\RSUP.OUT F:\CIXCMP\UPUB\RSUP.OUT >> F:\CIXCMP\UCOMP.LOG
|
||||
ECHO Comparing S_ARCH.TXT >> F:\CIXCMP\UCOMP.LOG
|
||||
FC F:\CIXCMP\UNOV\RARCH.OUT F:\CIXCMP\UPUB\RARCH.OUT >> F:\CIXCMP\UCOMP.LOG
|
||||
ECHO Comparing S_ALL.TXT >> F:\CIXCMP\UCOMP.LOG
|
||||
FC F:\CIXCMP\UNOV\RALL.OUT F:\CIXCMP\UPUB\RALL.OUT >> F:\CIXCMP\UCOMP.LOG
|
||||
|
||||
ECHO === SUMMARY === > F:\CIXCMP\SUMMARY.TXT
|
||||
ECHO CIXSTA creator/xattr test with PUBLIC\CREATOR finished. >> F:\CIXCMP\SUMMARY.TXT
|
||||
ECHO. >> F:\CIXCMP\SUMMARY.TXT
|
||||
@@ -92,10 +172,23 @@ ECHO - S_ARCH.TXT has archive date/time/archiver MARIO via user.mars_nwe.archive
|
||||
ECHO - S_ALL.TXT has fileinfo and archive metadata with explicit date/time. >> F:\CIXCMP\SUMMARY.TXT
|
||||
ECHO - POST\C*.OUT shows PUBLIC\CREATOR /SHOW readback. >> F:\CIXCMP\SUMMARY.TXT
|
||||
ECHO - POST\SUPDAT.OUT shows NDIR /DATES readback. >> F:\CIXCMP\SUMMARY.TXT
|
||||
ECHO - UCREATOR/UNOV/UPUB show NOPASSUSER readback. >> F:\CIXCMP\SUMMARY.TXT
|
||||
ECHO. >> F:\CIXCMP\SUMMARY.TXT
|
||||
ECHO Next Linux-side step: run cix_collect_xattr.sh, then CIXZIP. >> F:\CIXCMP\SUMMARY.TXT
|
||||
|
||||
ECHO.
|
||||
ECHO CIXSTA fertig.
|
||||
ECHO CIXSTA PART2 fertig.
|
||||
ECHO Jetzt auf Linux cix_collect_xattr.sh ausfuehren, dann CIXZIP.
|
||||
ECHO.
|
||||
GOTO END
|
||||
|
||||
:NEEDPWD
|
||||
ECHO ERROR: LGNTPWD ist nicht gesetzt.
|
||||
ECHO Fuer den automatischen CREATOR/NOPASSUSER-Test zuerst setzen, z.B.:
|
||||
ECHO SET LGNTPWD=dein-supervisor-passwort
|
||||
ECHO Danach starten:
|
||||
ECHO F:\CIXSTA
|
||||
ECHO Es wurde kein DLYSTRT installiert und kein User-Kontext-Test gestartet.
|
||||
GOTO END
|
||||
|
||||
:END
|
||||
|
||||
Reference in New Issue
Block a user