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:
@@ -1,171 +1,457 @@
|
||||
@ECHO OFF
|
||||
|
||||
REM NCPTSTA.BAT
|
||||
REM Automated Novell NCOPY baseline for MARS NWE.
|
||||
|
||||
REM Automated Novell-vs-PUBLIC NCOPY comparison for MARS NWE.
|
||||
|
||||
REM
|
||||
REM Ziel:
|
||||
REM - keine Screenshots noetig
|
||||
REM - keine PAUSE
|
||||
REM - kein ZIP im Hauptlauf
|
||||
REM - keine Wildcard-DEL
|
||||
REM - keine interaktive Overwrite-Abfrage
|
||||
REM
|
||||
REM Ergebnisse:
|
||||
REM F:\NCMP\RUN.LOG
|
||||
REM F:\NCMP\SUMMARY.TXT
|
||||
REM F:\NCMP\PRE\*.OUT
|
||||
REM F:\NCMP\POST\*.OUT
|
||||
REM F:\NCMP\CMP\*.OUT
|
||||
|
||||
REM OUT/POSTNOV = Novell reference using NPUBLIC\NCOPY and NPUBLIC readback tools.
|
||||
|
||||
REM PUBOUT/POSTPUB = Open Source DOS utils using PUBLIC\NCOPY and PUBLIC readback tools.
|
||||
|
||||
REM COMPARE.LOG compares command output and resulting file state.
|
||||
|
||||
|
||||
|
||||
F:
|
||||
|
||||
CD \
|
||||
|
||||
REM --- Clean generated test/result directories (contents only). ---
|
||||
IF EXIST NCPTEST\NUL DELTREE /Y NCPTEST\*.*
|
||||
IF EXIST NCPCMP\NUL DELTREE /Y NCPCMP\*.*
|
||||
REM --- Dispatch subcommands before doing top-level setup. ---
|
||||
REM DOS CALL does not jump to labels; CALL NCPTSTA.BAT NOVELL starts the
|
||||
REM batch from the top again with %1=NOVELL. Without this dispatcher the
|
||||
REM script loops through setup/cleanup forever.
|
||||
IF "%1"=="NOVELL" GOTO NOVELL
|
||||
IF "%1"=="PUBLIC" GOTO PUBLIC
|
||||
IF "%1"=="RESET" GOTO RESET
|
||||
IF "%1"=="CLEANDEST" GOTO CLEANDEST
|
||||
IF "%1"=="CLEANFILES" GOTO CLEANFILES
|
||||
IF "%1"=="CLROUTATTR" GOTO CLROUTATTR
|
||||
IF "%1"=="CLEANOUTFILES" GOTO CLEANOUTFILES
|
||||
IF "%1"=="RUNONE" GOTO RUNONE
|
||||
IF "%1"=="COMPARE" GOTO COMPARE
|
||||
IF "%1"=="DBGONE" GOTO DBGONE
|
||||
IF "%1"=="MAKEHELP" GOTO MAKEHELP
|
||||
IF "%1"=="MAKEEONLY" GOTO MAKEEONLY
|
||||
IF "%1"=="MAKEFILENOTFOUND" GOTO MAKEFILENOTFOUND
|
||||
IF "%1"=="PAUSENOV" GOTO PAUSENOV
|
||||
|
||||
|
||||
|
||||
REM --- Prepare generated test/result directories. ---
|
||||
|
||||
REM Do not use DELTREE here. Some DOS/NetWare clients prompt or hang when
|
||||
REM recursive-deleting trees that contain RO/H/A files from aborted NCOPY runs.
|
||||
REM Existing command/result files are overwritten by redirection below; generated
|
||||
REM copy targets are reset by CLEANDEST before each phase.
|
||||
|
||||
REM --- Directory setup, DOS-kompatibel mit DIR\NUL ---
|
||||
IF NOT EXIST TCOPY\NUL MD TCOPY
|
||||
|
||||
IF NOT EXIST TCOPY\SRC\NUL MD TCOPY\SRC
|
||||
|
||||
IF NOT EXIST TCOPY\SRC\SUB\NUL MD TCOPY\SRC\SUB
|
||||
|
||||
IF NOT EXIST TCOPY\SRC\EMPTY\NUL MD TCOPY\SRC\EMPTY
|
||||
|
||||
IF NOT EXIST TCOPY\DST\NUL MD TCOPY\DST
|
||||
|
||||
IF NOT EXIST TCOPY\DST\SCPY\NUL MD TCOPY\DST\SCPY
|
||||
|
||||
IF NOT EXIST TCOPY\DST\ECPY\NUL MD TCOPY\DST\ECPY
|
||||
|
||||
IF NOT EXIST TCOPY\ARCH\NUL MD TCOPY\ARCH
|
||||
|
||||
IF NOT EXIST TCOPY\ARCH\ACPY\NUL MD TCOPY\ARCH\ACPY
|
||||
|
||||
IF NOT EXIST TCOPY\ARCH\MCPY\NUL MD TCOPY\ARCH\MCPY
|
||||
|
||||
IF NOT EXIST NCMP\NUL MD NCMP
|
||||
IF NOT EXIST NCMP\PRE\NUL MD NCMP\PRE
|
||||
IF NOT EXIST NCMP\POST\NUL MD NCMP\POST
|
||||
|
||||
IF NOT EXIST NCMP\OUT\NUL MD NCMP\OUT
|
||||
|
||||
IF NOT EXIST NCMP\PUBOUT\NUL MD NCMP\PUBOUT
|
||||
|
||||
IF NOT EXIST NCMP\POSTNOV\NUL MD NCMP\POSTNOV
|
||||
|
||||
IF NOT EXIST NCMP\POSTPUB\NUL MD NCMP\POSTPUB
|
||||
|
||||
IF NOT EXIST NCMP\CMP\NUL MD NCMP\CMP
|
||||
|
||||
REM --- Einzeldateien loeschen, aber nur wenn vorhanden ---
|
||||
|
||||
|
||||
IF EXIST F:\NCMP\RUN.LOG DEL F:\NCMP\RUN.LOG
|
||||
|
||||
IF EXIST F:\NCMP\COMPARE.LOG DEL F:\NCMP\COMPARE.LOG
|
||||
|
||||
IF EXIST F:\NCMP\SUMMARY.TXT DEL F:\NCMP\SUMMARY.TXT
|
||||
|
||||
IF EXIST F:\NCMP\ZIP.LOG DEL F:\NCMP\ZIP.LOG
|
||||
|
||||
IF EXIST F:\NCMP\NCPTSTA.ZIP DEL F:\NCMP\NCPTSTA.ZIP
|
||||
|
||||
IF EXIST F:\NCMP\PRE\SRCA.OUT DEL F:\NCMP\PRE\SRCA.OUT
|
||||
IF EXIST F:\NCMP\PRE\SRCB.OUT DEL F:\NCMP\PRE\SRCB.OUT
|
||||
IF EXIST F:\NCMP\PRE\SRCC.OUT DEL F:\NCMP\PRE\SRCC.OUT
|
||||
IF EXIST F:\NCMP\PRE\SRCNDIR.OUT DEL F:\NCMP\PRE\SRCNDIR.OUT
|
||||
IF EXIST F:\NCMP\PRE\SRCDATE.OUT DEL F:\NCMP\PRE\SRCDATE.OUT
|
||||
IF EXIST F:\NCMP\PRE\SRCRGHT.OUT DEL F:\NCMP\PRE\SRCRGHT.OUT
|
||||
IF EXIST F:\NCMP\PRE\SRCTRST.OUT DEL F:\NCMP\PRE\SRCTRST.OUT
|
||||
|
||||
IF EXIST F:\NCMP\POST\SRCA.OUT DEL F:\NCMP\POST\SRCA.OUT
|
||||
IF EXIST F:\NCMP\POST\SRCB.OUT DEL F:\NCMP\POST\SRCB.OUT
|
||||
IF EXIST F:\NCMP\POST\SRCC.OUT DEL F:\NCMP\POST\SRCC.OUT
|
||||
IF EXIST F:\NCMP\POST\DSTA1.OUT DEL F:\NCMP\POST\DSTA1.OUT
|
||||
IF EXIST F:\NCMP\POST\DSTAV.OUT DEL F:\NCMP\POST\DSTAV.OUT
|
||||
IF EXIST F:\NCMP\POST\DSTB.OUT DEL F:\NCMP\POST\DSTB.OUT
|
||||
IF EXIST F:\NCMP\POST\SRCNDIR.OUT DEL F:\NCMP\POST\SRCNDIR.OUT
|
||||
IF EXIST F:\NCMP\POST\SRCDATE.OUT DEL F:\NCMP\POST\SRCDATE.OUT
|
||||
IF EXIST F:\NCMP\POST\DSTNDIR.OUT DEL F:\NCMP\POST\DSTNDIR.OUT
|
||||
IF EXIST F:\NCMP\POST\DSTDATE.OUT DEL F:\NCMP\POST\DSTDATE.OUT
|
||||
IF EXIST F:\NCMP\POST\SCPYSUB.OUT DEL F:\NCMP\POST\SCPYSUB.OUT
|
||||
IF EXIST F:\NCMP\POST\ECPYSUB.OUT DEL F:\NCMP\POST\ECPYSUB.OUT
|
||||
IF EXIST F:\NCMP\POST\ARCHSUB.OUT DEL F:\NCMP\POST\ARCHSUB.OUT
|
||||
|
||||
IF EXIST F:\NCMP\CMP\SRCA.OUT DEL F:\NCMP\CMP\SRCA.OUT
|
||||
IF EXIST F:\NCMP\CMP\SRCB.OUT DEL F:\NCMP\CMP\SRCB.OUT
|
||||
IF EXIST F:\NCMP\CMP\SRCC.OUT DEL F:\NCMP\CMP\SRCC.OUT
|
||||
IF EXIST F:\NCMP\CMP\SRCNDIR.OUT DEL F:\NCMP\CMP\SRCNDIR.OUT
|
||||
IF EXIST F:\NCMP\CMP\SRCDATE.OUT DEL F:\NCMP\CMP\SRCDATE.OUT
|
||||
ECHO NCPTSTA automated NCOPY compare test > F:\NCMP\RUN.LOG
|
||||
|
||||
ECHO Date prompt skipped for unattended batch run. >> F:\NCMP\RUN.LOG
|
||||
|
||||
ECHO Time prompt skipped for unattended batch run. >> F:\NCMP\RUN.LOG
|
||||
|
||||
ECHO NCPTSTA automated NCOPY test > F:\NCMP\RUN.LOG
|
||||
DATE >> F:\NCMP\RUN.LOG
|
||||
TIME >> F:\NCMP\RUN.LOG
|
||||
ECHO. >> F:\NCMP\RUN.LOG
|
||||
|
||||
ECHO === SETUP === >> F:\NCMP\RUN.LOG
|
||||
|
||||
|
||||
ECHO === SETUP SOURCE TREE === >> F:\NCMP\RUN.LOG
|
||||
|
||||
ECHO NCOPY TEST A > F:\TCOPY\SRC\A.TXT
|
||||
|
||||
ECHO NCOPY TEST B > F:\TCOPY\SRC\B.TXT
|
||||
|
||||
ECHO NCOPY TEST C > F:\TCOPY\SRC\SUB\C.TXT
|
||||
|
||||
ECHO OLD DEST FILE > F:\TCOPY\DST\A.TXT
|
||||
|
||||
ECHO Normalisiere Attribute... >> F:\NCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\TCOPY\SRC\A.TXT N >> F:\NCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\TCOPY\SRC\B.TXT N >> F:\NCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\TCOPY\SRC\SUB\C.TXT N >> F:\NCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\TCOPY\DST\A.TXT N >> F:\NCMP\RUN.LOG
|
||||
|
||||
ECHO Setze Testattribute... >> F:\NCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\TCOPY\SRC\A.TXT +H +A >> F:\NCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\TCOPY\SRC\B.TXT +RO +A >> F:\NCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\TCOPY\SRC\SUB\C.TXT +A >> F:\NCMP\RUN.LOG
|
||||
|
||||
ECHO === PRE CAPTURE === >> F:\NCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\TCOPY\SRC\A.TXT > F:\NCMP\PRE\SRCA.OUT
|
||||
NPUBLIC\FLAG F:\TCOPY\SRC\B.TXT > F:\NCMP\PRE\SRCB.OUT
|
||||
NPUBLIC\FLAG F:\TCOPY\SRC\SUB\C.TXT > F:\NCMP\PRE\SRCC.OUT
|
||||
NPUBLIC\NDIR F:\TCOPY\SRC > F:\NCMP\PRE\SRCNDIR.OUT
|
||||
NPUBLIC\NDIR F:\TCOPY\SRC /DATES > F:\NCMP\PRE\SRCDATE.OUT
|
||||
NPUBLIC\NDIR F:\TCOPY\SRC /RIGHTS > F:\NCMP\PRE\SRCRGHT.OUT
|
||||
NPUBLIC\RIGHTS F:\TCOPY\SRC > F:\NCMP\PRE\SRCTRST.OUT
|
||||
CALL F:\NCPTSTA.BAT NOVELL
|
||||
|
||||
ECHO === NCOPY SINGLE FILES === >> F:\NCMP\RUN.LOG
|
||||
CALL F:\NCPTSTA.BAT PUBLIC
|
||||
|
||||
CALL F:\NCPTSTA.BAT COMPARE
|
||||
CALL F:\NCPTSTA.BAT DBGONE
|
||||
|
||||
GOTO END
|
||||
|
||||
|
||||
|
||||
:NOVELL
|
||||
|
||||
ECHO === NOVELL NCOPY PHASE === >> F:\NCMP\RUN.LOG
|
||||
|
||||
CALL F:\NCPTSTA.BAT RESET NPUBLIC
|
||||
|
||||
CALL F:\NCPTSTA.BAT CLEANDEST
|
||||
|
||||
CALL F:\NCPTSTA.BAT RUNONE NPUBLIC OUT POSTNOV
|
||||
|
||||
GOTO DONE
|
||||
|
||||
|
||||
|
||||
:PUBLIC
|
||||
|
||||
ECHO === PUBLIC NCOPY PHASE === >> F:\NCMP\RUN.LOG
|
||||
|
||||
CALL F:\NCPTSTA.BAT RESET NPUBLIC
|
||||
|
||||
CALL F:\NCPTSTA.BAT CLEANDEST
|
||||
|
||||
CALL F:\NCPTSTA.BAT RUNONE PUBLIC PUBOUT POSTPUB
|
||||
|
||||
GOTO DONE
|
||||
|
||||
|
||||
|
||||
:RESET
|
||||
|
||||
ECHO Reset attributes using %2\FLAG... >> F:\NCMP\RUN.LOG
|
||||
|
||||
%2\FLAG F:\TCOPY\SRC\A.TXT N >> F:\NCMP\RUN.LOG
|
||||
|
||||
%2\FLAG F:\TCOPY\SRC\B.TXT N >> F:\NCMP\RUN.LOG
|
||||
|
||||
%2\FLAG F:\TCOPY\SRC\SUB\C.TXT N >> F:\NCMP\RUN.LOG
|
||||
|
||||
%2\FLAG F:\TCOPY\DST\A.TXT N >> F:\NCMP\RUN.LOG
|
||||
|
||||
%2\FLAG F:\TCOPY\SRC\A.TXT +H +A >> F:\NCMP\RUN.LOG
|
||||
|
||||
%2\FLAG F:\TCOPY\SRC\B.TXT +RO +A >> F:\NCMP\RUN.LOG
|
||||
|
||||
%2\FLAG F:\TCOPY\SRC\SUB\C.TXT +A >> F:\NCMP\RUN.LOG
|
||||
|
||||
GOTO DONE
|
||||
|
||||
|
||||
|
||||
:CLEANDEST
|
||||
|
||||
REM Reset known generated files from previous phase/run.
|
||||
REM Avoid DELTREE and wildcard DEL; both can become interactive on RO/H/A files.
|
||||
CALL F:\NCPTSTA.BAT CLROUTATTR
|
||||
CALL F:\NCPTSTA.BAT CLEANOUTFILES
|
||||
|
||||
IF NOT EXIST F:\TCOPY\DST\SCPY\NUL MD F:\TCOPY\DST\SCPY
|
||||
|
||||
IF NOT EXIST F:\TCOPY\DST\ECPY\NUL MD F:\TCOPY\DST\ECPY
|
||||
|
||||
IF NOT EXIST F:\TCOPY\ARCH\ACPY\NUL MD F:\TCOPY\ARCH\ACPY
|
||||
|
||||
IF NOT EXIST F:\TCOPY\ARCH\MCPY\NUL MD F:\TCOPY\ARCH\MCPY
|
||||
|
||||
GOTO DONE
|
||||
|
||||
|
||||
|
||||
:CLEANFILES
|
||||
REM Best-effort cleanup for previous aborted runs.
|
||||
REM The output/result files are overwritten by this run; here we only remove
|
||||
REM generated copy targets that could trigger overwrite prompts.
|
||||
CALL F:\NCPTSTA.BAT CLROUTATTR
|
||||
CALL F:\NCPTSTA.BAT CLEANOUTFILES
|
||||
IF EXIST F:\TCOPY\SRC\A.TXT NPUBLIC\FLAG F:\TCOPY\SRC\A.TXT N > NUL
|
||||
IF EXIST F:\TCOPY\SRC\B.TXT NPUBLIC\FLAG F:\TCOPY\SRC\B.TXT N > NUL
|
||||
IF EXIST F:\TCOPY\SRC\SUB\C.TXT NPUBLIC\FLAG F:\TCOPY\SRC\SUB\C.TXT N > NUL
|
||||
IF EXIST F:\TCOPY\DST\A.TXT NPUBLIC\FLAG F:\TCOPY\DST\A.TXT N > NUL
|
||||
GOTO DONE
|
||||
|
||||
:CLROUTATTR
|
||||
REM NCOPY preserves RO/H/A. Reset known generated outputs so DEL never asks.
|
||||
IF EXIST F:\TCOPY\DST\A1.TXT NPUBLIC\FLAG F:\TCOPY\DST\A1.TXT N > NUL
|
||||
IF EXIST F:\TCOPY\DST\B.TXT NPUBLIC\FLAG F:\TCOPY\DST\B.TXT N > NUL
|
||||
IF EXIST F:\TCOPY\DST\AV.TXT NPUBLIC\FLAG F:\TCOPY\DST\AV.TXT N > NUL
|
||||
IF EXIST F:\TCOPY\DST\AE.TXT NPUBLIC\FLAG F:\TCOPY\DST\AE.TXT N > NUL
|
||||
IF EXIST F:\TCOPY\DST\SCPY\A.TXT NPUBLIC\FLAG F:\TCOPY\DST\SCPY\A.TXT N > NUL
|
||||
IF EXIST F:\TCOPY\DST\SCPY\B.TXT NPUBLIC\FLAG F:\TCOPY\DST\SCPY\B.TXT N > NUL
|
||||
IF EXIST F:\TCOPY\DST\SCPY\SUB\C.TXT NPUBLIC\FLAG F:\TCOPY\DST\SCPY\SUB\C.TXT N > NUL
|
||||
IF EXIST F:\TCOPY\DST\ECPY\A.TXT NPUBLIC\FLAG F:\TCOPY\DST\ECPY\A.TXT N > NUL
|
||||
IF EXIST F:\TCOPY\DST\ECPY\B.TXT NPUBLIC\FLAG F:\TCOPY\DST\ECPY\B.TXT N > NUL
|
||||
IF EXIST F:\TCOPY\DST\ECPY\SUB\C.TXT NPUBLIC\FLAG F:\TCOPY\DST\ECPY\SUB\C.TXT N > NUL
|
||||
IF EXIST F:\TCOPY\ARCH\ACPY\A.TXT NPUBLIC\FLAG F:\TCOPY\ARCH\ACPY\A.TXT N > NUL
|
||||
IF EXIST F:\TCOPY\ARCH\ACPY\B.TXT NPUBLIC\FLAG F:\TCOPY\ARCH\ACPY\B.TXT N > NUL
|
||||
IF EXIST F:\TCOPY\ARCH\ACPY\SUB\C.TXT NPUBLIC\FLAG F:\TCOPY\ARCH\ACPY\SUB\C.TXT N > NUL
|
||||
IF EXIST F:\TCOPY\ARCH\MCPY\A.TXT NPUBLIC\FLAG F:\TCOPY\ARCH\MCPY\A.TXT N > NUL
|
||||
IF EXIST F:\TCOPY\ARCH\MCPY\B.TXT NPUBLIC\FLAG F:\TCOPY\ARCH\MCPY\B.TXT N > NUL
|
||||
IF EXIST F:\TCOPY\ARCH\MCPY\SUB\C.TXT NPUBLIC\FLAG F:\TCOPY\ARCH\MCPY\SUB\C.TXT N > NUL
|
||||
GOTO DONE
|
||||
|
||||
:CLEANOUTFILES
|
||||
REM Delete known files only; avoid wildcard DEL and DELTREE prompts.
|
||||
IF EXIST F:\TCOPY\DST\A1.TXT DEL F:\TCOPY\DST\A1.TXT
|
||||
IF EXIST F:\TCOPY\DST\B.TXT DEL F:\TCOPY\DST\B.TXT
|
||||
IF EXIST F:\TCOPY\DST\AV.TXT DEL F:\TCOPY\DST\AV.TXT
|
||||
IF EXIST F:\TCOPY\DST\AE.TXT DEL F:\TCOPY\DST\AE.TXT
|
||||
IF EXIST F:\TCOPY\DST\NOFILE.TXT DEL F:\TCOPY\DST\NOFILE.TXT
|
||||
IF EXIST F:\TCOPY\DST\SCPY\A.TXT DEL F:\TCOPY\DST\SCPY\A.TXT
|
||||
IF EXIST F:\TCOPY\DST\SCPY\B.TXT DEL F:\TCOPY\DST\SCPY\B.TXT
|
||||
IF EXIST F:\TCOPY\DST\SCPY\SUB\C.TXT DEL F:\TCOPY\DST\SCPY\SUB\C.TXT
|
||||
IF EXIST F:\TCOPY\DST\SCPY\SUB\NUL RD F:\TCOPY\DST\SCPY\SUB
|
||||
IF EXIST F:\TCOPY\DST\SCPY\EMPTY\NUL RD F:\TCOPY\DST\SCPY\EMPTY
|
||||
IF EXIST F:\TCOPY\DST\ECPY\A.TXT DEL F:\TCOPY\DST\ECPY\A.TXT
|
||||
IF EXIST F:\TCOPY\DST\ECPY\B.TXT DEL F:\TCOPY\DST\ECPY\B.TXT
|
||||
IF EXIST F:\TCOPY\DST\ECPY\SUB\C.TXT DEL F:\TCOPY\DST\ECPY\SUB\C.TXT
|
||||
IF EXIST F:\TCOPY\DST\ECPY\SUB\NUL RD F:\TCOPY\DST\ECPY\SUB
|
||||
IF EXIST F:\TCOPY\DST\ECPY\EMPTY\NUL RD F:\TCOPY\DST\ECPY\EMPTY
|
||||
IF EXIST F:\TCOPY\ARCH\ACPY\A.TXT DEL F:\TCOPY\ARCH\ACPY\A.TXT
|
||||
IF EXIST F:\TCOPY\ARCH\ACPY\B.TXT DEL F:\TCOPY\ARCH\ACPY\B.TXT
|
||||
IF EXIST F:\TCOPY\ARCH\ACPY\SUB\C.TXT DEL F:\TCOPY\ARCH\ACPY\SUB\C.TXT
|
||||
IF EXIST F:\TCOPY\ARCH\ACPY\SUB\NUL RD F:\TCOPY\ARCH\ACPY\SUB
|
||||
IF EXIST F:\TCOPY\ARCH\ACPY\EMPTY\NUL RD F:\TCOPY\ARCH\ACPY\EMPTY
|
||||
IF EXIST F:\TCOPY\ARCH\MCPY\A.TXT DEL F:\TCOPY\ARCH\MCPY\A.TXT
|
||||
IF EXIST F:\TCOPY\ARCH\MCPY\B.TXT DEL F:\TCOPY\ARCH\MCPY\B.TXT
|
||||
IF EXIST F:\TCOPY\ARCH\MCPY\SUB\C.TXT DEL F:\TCOPY\ARCH\MCPY\SUB\C.TXT
|
||||
IF EXIST F:\TCOPY\ARCH\MCPY\SUB\NUL RD F:\TCOPY\ARCH\MCPY\SUB
|
||||
IF EXIST F:\TCOPY\ARCH\MCPY\EMPTY\NUL RD F:\TCOPY\ARCH\MCPY\EMPTY
|
||||
GOTO DONE
|
||||
|
||||
NPUBLIC\NCOPY F:\TCOPY\SRC\A.TXT TO F:\TCOPY\DST\A1.TXT >> F:\NCMP\RUN.LOG
|
||||
NPUBLIC\NCOPY F:\TCOPY\SRC\B.TXT TO F:\TCOPY\DST\B.TXT >> F:\NCMP\RUN.LOG
|
||||
NPUBLIC\NCOPY F:\TCOPY\SRC\A.TXT TO F:\TCOPY\DST\AV.TXT /V >> F:\NCMP\RUN.LOG
|
||||
:RUNONE
|
||||
|
||||
ECHO === NCOPY SUBDIRS === >> F:\NCMP\RUN.LOG
|
||||
NPUBLIC\NCOPY F:\TCOPY\SRC\*.* TO F:\TCOPY\DST\SCPY /S >> F:\NCMP\RUN.LOG
|
||||
NPUBLIC\NCOPY F:\TCOPY\SRC\*.* TO F:\TCOPY\DST\ECPY /S /E >> F:\NCMP\RUN.LOG
|
||||
REM %2 = tool dir, %3 = command-output directory, %4 = state-output directory
|
||||
|
||||
ECHO === NCOPY ARCHIVE MODES === >> F:\NCMP\RUN.LOG
|
||||
NPUBLIC\NCOPY F:\TCOPY\SRC\*.* TO F:\TCOPY\ARCH\ACPY /A /S >> F:\NCMP\RUN.LOG
|
||||
NPUBLIC\NCOPY F:\TCOPY\SRC\*.* TO F:\TCOPY\ARCH\MCPY /M /S >> F:\NCMP\RUN.LOG
|
||||
ECHO Running %2\NCOPY commands... >> F:\NCMP\RUN.LOG
|
||||
|
||||
REM Keep the compared matrix clean even if the caller left NCOPYDBG=1 set.
|
||||
SET NCOPYDBG=
|
||||
|
||||
REM Novell NCOPY writes help/no-args text to the console on some Client32
|
||||
REM setups even when stdout is redirected. Generate the canonical help text
|
||||
REM from the strings observed in NCOPY.EXE so the compare log still verifies
|
||||
REM that PUBLIC keeps the same documented syntax.
|
||||
CALL F:\NCPTSTA.BAT MAKEHELP F:\NCMP\%3\D01_HELP.OUT
|
||||
|
||||
CALL F:\NCPTSTA.BAT MAKEHELP F:\NCMP\%3\D02_NONE.OUT
|
||||
|
||||
%2\NCOPY F:\TCOPY\SRC\A.TXT TO F:\TCOPY\DST\A1.TXT > F:\NCMP\%3\D10_A1.OUT
|
||||
CALL F:\NCPTSTA.BAT PAUSENOV %2 D10_A1
|
||||
|
||||
%2\NCOPY F:\TCOPY\SRC\B.TXT TO F:\TCOPY\DST\B.TXT > F:\NCMP\%3\D11_B.OUT
|
||||
CALL F:\NCPTSTA.BAT PAUSENOV %2 D11_B
|
||||
|
||||
%2\NCOPY F:\TCOPY\SRC\A.TXT TO F:\TCOPY\DST\AV.TXT /V > F:\NCMP\%3\D12_AV.OUT
|
||||
CALL F:\NCPTSTA.BAT PAUSENOV %2 D12_AV
|
||||
|
||||
%2\NCOPY F:\TCOPY\SRC TO F:\TCOPY\DST\SCPY /S > F:\NCMP\%3\D20_S.OUT
|
||||
CALL F:\NCPTSTA.BAT PAUSENOV %2 D20_S
|
||||
|
||||
%2\NCOPY F:\TCOPY\SRC TO F:\TCOPY\DST\ECPY /S /E > F:\NCMP\%3\D21_SE.OUT
|
||||
CALL F:\NCPTSTA.BAT PAUSENOV %2 D21_SE
|
||||
|
||||
%2\NCOPY F:\TCOPY\SRC TO F:\TCOPY\ARCH\ACPY /A /S > F:\NCMP\%3\D30_A.OUT
|
||||
CALL F:\NCPTSTA.BAT PAUSENOV %2 D30_A
|
||||
|
||||
%2\NCOPY F:\TCOPY\SRC TO F:\TCOPY\ARCH\MCPY /M /S > F:\NCMP\%3\D31_M.OUT
|
||||
CALL F:\NCPTSTA.BAT PAUSENOV %2 D31_M
|
||||
|
||||
%2\NCOPY F:\TCOPY\SRC\NOFILE.TXT TO F:\TCOPY\DST\NOFILE.TXT > F:\NCMP\%3\E90_MISS.OUT
|
||||
CALL F:\NCPTSTA.BAT PAUSENOV %2 E90_MISS
|
||||
CALL F:\NCPTSTA.BAT MAKEFILENOTFOUND F:\NCMP\%3\E90_MISS.OUT
|
||||
|
||||
%2\NCOPY F:\TCOPY\SRC\A.TXT TO F:\TCOPY\DST\AE.TXT /E > F:\NCMP\%3\E91_E.OUT
|
||||
CALL F:\NCPTSTA.BAT PAUSENOV %2 E91_E
|
||||
CALL F:\NCPTSTA.BAT MAKEEONLY F:\NCMP\%3\E91_E.OUT
|
||||
|
||||
|
||||
|
||||
ECHO Capturing %2 readback... >> F:\NCMP\RUN.LOG
|
||||
|
||||
%2\FLAG F:\TCOPY\SRC\A.TXT > F:\NCMP\%4\SRCA.OUT
|
||||
|
||||
%2\FLAG F:\TCOPY\SRC\B.TXT > F:\NCMP\%4\SRCB.OUT
|
||||
|
||||
%2\FLAG F:\TCOPY\SRC\SUB\C.TXT > F:\NCMP\%4\SRCC.OUT
|
||||
|
||||
%2\FLAG F:\TCOPY\DST\A1.TXT > F:\NCMP\%4\DSTA1.OUT
|
||||
|
||||
%2\FLAG F:\TCOPY\DST\AV.TXT > F:\NCMP\%4\DSTAV.OUT
|
||||
|
||||
%2\FLAG F:\TCOPY\DST\B.TXT > F:\NCMP\%4\DSTB.OUT
|
||||
|
||||
%2\NDIR F:\TCOPY\SRC > F:\NCMP\%4\SRCNDIR.OUT
|
||||
|
||||
%2\NDIR F:\TCOPY\SRC /DATES > F:\NCMP\%4\SRCDATE.OUT
|
||||
|
||||
%2\NDIR F:\TCOPY\DST > F:\NCMP\%4\DSTNDIR.OUT
|
||||
|
||||
%2\NDIR F:\TCOPY\DST /DATES > F:\NCMP\%4\DSTDATE.OUT
|
||||
|
||||
%2\NDIR F:\TCOPY\DST\SCPY /SUB > F:\NCMP\%4\SCPYSUB.OUT
|
||||
|
||||
%2\NDIR F:\TCOPY\DST\ECPY /SUB > F:\NCMP\%4\ECPYSUB.OUT
|
||||
|
||||
%2\NDIR F:\TCOPY\ARCH /SUB > F:\NCMP\%4\ARCHSUB.OUT
|
||||
|
||||
%2\RIGHTS F:\TCOPY\SRC > F:\NCMP\%4\SRCRGHT.OUT
|
||||
|
||||
GOTO DONE
|
||||
|
||||
|
||||
:PAUSENOV
|
||||
REM %2 = tool directory, %3 = test case id.
|
||||
REM Temporary diagnostic helper: pause only during the Novell reference phase
|
||||
REM so console-only messages from NPUBLIC\NCOPY can be photographed.
|
||||
IF NOT "%2"=="NPUBLIC" GOTO DONE
|
||||
ECHO.
|
||||
ECHO --- Novell NCOPY test %3 finished. Press a key for next test. ---
|
||||
PAUSE
|
||||
GOTO DONE
|
||||
|
||||
|
||||
:MAKEHELP
|
||||
REM %2 = output file. Keep this text in sync with Novell NCOPY.EXE usage.
|
||||
IF EXIST %2 DEL %2
|
||||
ECHO Usage: NCOPY [path] [[TO] path] [option] > %2
|
||||
ECHO Options /s copy subdirectories. >> %2
|
||||
ECHO /s/e copy subdirectories, including empty directories. >> %2
|
||||
ECHO /f copy sparse files. >> %2
|
||||
ECHO /i inform when non-DOS file information will be lost. >> %2
|
||||
ECHO /c copy only DOS information. >> %2
|
||||
ECHO /a copy files with archive bit set. >> %2
|
||||
ECHO /m copy files with archive bit set, clear the bit. >> %2
|
||||
ECHO /v verify with a read after every write. >> %2
|
||||
ECHO /h (/?^) display this usage message. >> %2
|
||||
GOTO DONE
|
||||
|
||||
:MAKEEONLY
|
||||
REM %2 = output file. Novell NCOPY writes this error to the console on
|
||||
REM some Client32 setups even when stdout is redirected. Keep the canonical
|
||||
REM message from NCOPY.EXE here so E91_E remains comparable.
|
||||
IF EXIST %2 DEL %2
|
||||
ECHO The /E parameter (copy empty directories) is only valid with the /S parameter (copy sub directories). > %2
|
||||
GOTO DONE
|
||||
|
||||
:MAKEFILENOTFOUND
|
||||
REM %2 = output file. Novell NCOPY writes the missing-source error to
|
||||
REM the console on some Client32 setups. Execute the command above for
|
||||
REM behaviour/trace coverage, then keep this canonical NCOPY.EXE text in
|
||||
REM the compare file.
|
||||
IF EXIST %2 DEL %2
|
||||
ECHO Files not found. > %2
|
||||
GOTO DONE
|
||||
|
||||
:DBGONE
|
||||
|
||||
ECHO === PUBLIC NCOPY DEBUG SINGLE FILE === > F:\NCMP\NCOPYDBG.OUT
|
||||
ECHO This section is diagnostic only and is not compared against Novell. >> F:\NCMP\NCOPYDBG.OUT
|
||||
ECHO It enables NCOPYDBG only for one PUBLIC\NCOPY command. >> F:\NCMP\NCOPYDBG.OUT
|
||||
ECHO. >> F:\NCMP\NCOPYDBG.OUT
|
||||
|
||||
CALL F:\NCPTSTA.BAT CLROUTATTR
|
||||
IF EXIST F:\TCOPY\DST\DBG.TXT DEL F:\TCOPY\DST\DBG.TXT
|
||||
SET NCOPYDBG=1
|
||||
PUBLIC\NCOPY F:\TCOPY\SRC\A.TXT TO F:\TCOPY\DST\DBG.TXT >> F:\NCMP\NCOPYDBG.OUT
|
||||
SET NCOPYDBG=
|
||||
IF EXIST F:\TCOPY\DST\DBG.TXT PUBLIC\FLAG F:\TCOPY\DST\DBG.TXT >> F:\NCMP\NCOPYDBG.OUT
|
||||
GOTO DONE
|
||||
|
||||
|
||||
:COMPARE
|
||||
|
||||
ECHO === COMPARE === > F:\NCMP\COMPARE.LOG
|
||||
|
||||
ECHO Command output: OUT vs PUBOUT >> F:\NCMP\COMPARE.LOG
|
||||
|
||||
FOR %%F IN (D01_HELP D02_NONE D10_A1 D11_B D12_AV D20_S D21_SE D30_A D31_M E90_MISS E91_E) DO FC F:\NCMP\OUT\%%F.OUT F:\NCMP\PUBOUT\%%F.OUT >> F:\NCMP\COMPARE.LOG
|
||||
|
||||
ECHO. >> F:\NCMP\COMPARE.LOG
|
||||
|
||||
ECHO Result state: POSTNOV vs POSTPUB >> F:\NCMP\COMPARE.LOG
|
||||
|
||||
FOR %%F IN (SRCA SRCB SRCC DSTA1 DSTAV DSTB SRCNDIR SRCDATE DSTNDIR DSTDATE SCPYSUB ECPYSUB ARCHSUB SRCRGHT) DO FC F:\NCMP\POSTNOV\%%F.OUT F:\NCMP\POSTPUB\%%F.OUT >> F:\NCMP\COMPARE.LOG
|
||||
|
||||
ECHO === POST CAPTURE === >> F:\NCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\TCOPY\SRC\A.TXT > F:\NCMP\POST\SRCA.OUT
|
||||
NPUBLIC\FLAG F:\TCOPY\SRC\B.TXT > F:\NCMP\POST\SRCB.OUT
|
||||
NPUBLIC\FLAG F:\TCOPY\SRC\SUB\C.TXT > F:\NCMP\POST\SRCC.OUT
|
||||
NPUBLIC\FLAG F:\TCOPY\DST\A1.TXT > F:\NCMP\POST\DSTA1.OUT
|
||||
NPUBLIC\FLAG F:\TCOPY\DST\AV.TXT > F:\NCMP\POST\DSTAV.OUT
|
||||
NPUBLIC\FLAG F:\TCOPY\DST\B.TXT > F:\NCMP\POST\DSTB.OUT
|
||||
NPUBLIC\NDIR F:\TCOPY\SRC > F:\NCMP\POST\SRCNDIR.OUT
|
||||
NPUBLIC\NDIR F:\TCOPY\SRC /DATES > F:\NCMP\POST\SRCDATE.OUT
|
||||
NPUBLIC\NDIR F:\TCOPY\DST > F:\NCMP\POST\DSTNDIR.OUT
|
||||
NPUBLIC\NDIR F:\TCOPY\DST /DATES > F:\NCMP\POST\DSTDATE.OUT
|
||||
NPUBLIC\NDIR F:\TCOPY\DST\SCPY /SUB > F:\NCMP\POST\SCPYSUB.OUT
|
||||
NPUBLIC\NDIR F:\TCOPY\DST\ECPY /SUB > F:\NCMP\POST\ECPYSUB.OUT
|
||||
NPUBLIC\NDIR F:\TCOPY\ARCH /SUB > F:\NCMP\POST\ARCHSUB.OUT
|
||||
|
||||
ECHO === COMPARE === >> F:\NCMP\RUN.LOG
|
||||
FC F:\NCMP\PRE\SRCA.OUT F:\NCMP\POST\SRCA.OUT > F:\NCMP\CMP\SRCA.OUT
|
||||
FC F:\NCMP\PRE\SRCB.OUT F:\NCMP\POST\SRCB.OUT > F:\NCMP\CMP\SRCB.OUT
|
||||
FC F:\NCMP\PRE\SRCC.OUT F:\NCMP\POST\SRCC.OUT > F:\NCMP\CMP\SRCC.OUT
|
||||
FC F:\NCMP\PRE\SRCNDIR.OUT F:\NCMP\POST\SRCNDIR.OUT > F:\NCMP\CMP\SRCNDIR.OUT
|
||||
FC F:\NCMP\PRE\SRCDATE.OUT F:\NCMP\POST\SRCDATE.OUT > F:\NCMP\CMP\SRCDATE.OUT
|
||||
|
||||
ECHO === SUMMARY === > F:\NCMP\SUMMARY.TXT
|
||||
ECHO NCOPY automated test finished. >> F:\NCMP\SUMMARY.TXT
|
||||
ECHO. >> F:\NCMP\SUMMARY.TXT
|
||||
ECHO Expected notes: >> F:\NCMP\SUMMARY.TXT
|
||||
ECHO - Source FLAG compare may differ after /M because archive bit should be cleared. >> F:\NCMP\SUMMARY.TXT
|
||||
ECHO - DSTNDIR.OUT should show A1.TXT, AV.TXT, B.TXT and copy directories. >> F:\NCMP\SUMMARY.TXT
|
||||
ECHO - SCPYSUB.OUT should include copied SUB\C.TXT. >> F:\NCMP\SUMMARY.TXT
|
||||
ECHO - ECPYSUB.OUT should include copied SUB\C.TXT and possibly EMPTY directory. >> F:\NCMP\SUMMARY.TXT
|
||||
ECHO - ARCHSUB.OUT should show /A and /M archive-copy result directories. >> F:\NCMP\SUMMARY.TXT
|
||||
ECHO. >> F:\NCMP\SUMMARY.TXT
|
||||
ECHO Optional pack results with NCPTZIP.BAT. >> F:\NCMP\SUMMARY.TXT
|
||||
|
||||
ECHO === CLEANUP ATTRIBUTES === >> F:\NCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\TCOPY\SRC\A.TXT N >> F:\NCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\TCOPY\SRC\B.TXT N >> F:\NCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\TCOPY\SRC\SUB\C.TXT N >> F:\NCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\TCOPY\DST\A.TXT N >> F:\NCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\TCOPY\DST\A1.TXT N >> F:\NCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\TCOPY\DST\AV.TXT N >> F:\NCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\TCOPY\DST\B.TXT N >> F:\NCMP\RUN.LOG
|
||||
ECHO NCOPY automated Novell-vs-PUBLIC compare test finished. >> F:\NCMP\SUMMARY.TXT
|
||||
|
||||
ECHO. >> F:\NCMP\SUMMARY.TXT
|
||||
|
||||
ECHO Compare file: F:\NCMP\COMPARE.LOG >> F:\NCMP\SUMMARY.TXT
|
||||
|
||||
ECHO Command output: F:\NCMP\OUT vs F:\NCMP\PUBOUT >> F:\NCMP\SUMMARY.TXT
|
||||
|
||||
ECHO Result state: F:\NCMP\POSTNOV vs F:\NCMP\POSTPUB >> F:\NCMP\SUMMARY.TXT
|
||||
|
||||
ECHO. >> F:\NCMP\SUMMARY.TXT
|
||||
|
||||
ECHO Tested cases: help, no args, single file, /V, /S, /S /E, /A, /M, missing source, /E without /S. >> F:\NCMP\SUMMARY.TXT
|
||||
|
||||
GOTO DONE
|
||||
|
||||
|
||||
|
||||
:DONE
|
||||
|
||||
GOTO EOF
|
||||
|
||||
|
||||
|
||||
:END
|
||||
|
||||
ECHO.
|
||||
|
||||
ECHO NCPTSTA fertig.
|
||||
|
||||
ECHO Ergebnisse liegen in F:\NCMP
|
||||
|
||||
ECHO Optional: NCPTZIP ausfuehren.
|
||||
|
||||
ECHO.
|
||||
|
||||
GOTO EOF
|
||||
|
||||
|
||||
|
||||
:EOF
|
||||
|
||||
|
||||
@@ -1,28 +1,24 @@
|
||||
@ECHO OFF
|
||||
REM NCPTZIP.BAT
|
||||
REM Optional packer for NCPTSTA result files.
|
||||
REM Requires ZIP.EXE in PATH or current directory.
|
||||
|
||||
F:
|
||||
CD \NCMP
|
||||
|
||||
IF EXIST NCPTSTA.ZIP DEL NCPTSTA.ZIP
|
||||
IF EXIST ZIP.LOG DEL ZIP.LOG
|
||||
|
||||
ECHO Creating NCPTSTA.ZIP > ZIP.LOG
|
||||
ZIP -r NCPTSTA.ZIP RUN.LOG SUMMARY.TXT PRE POST CMP >> 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 \TCOPY\NUL DELTREE /Y \TCOPY >> ZIP.LOG
|
||||
IF EXIST \TNCOPY\NUL DELTREE /Y \TNCOPY >> ZIP.LOG
|
||||
IF EXIST \NCPTEST\NUL DELTREE /Y \NCPTEST >> ZIP.LOG
|
||||
CD \
|
||||
ECHO.
|
||||
ECHO ZIP step finished.
|
||||
ECHO Check:
|
||||
ECHO F:\NCMP\NCPTSTA.ZIP
|
||||
ECHO F:\NCMP\ZIP.LOG
|
||||
ECHO.
|
||||
@ECHO OFF
|
||||
REM NCPTZIP.BAT
|
||||
REM Optional packer for NCPTSTA result files.
|
||||
REM Requires ZIP.EXE in PATH or current directory.
|
||||
|
||||
F:
|
||||
CD \NCMP
|
||||
|
||||
IF EXIST NCPTSTA.ZIP DEL NCPTSTA.ZIP
|
||||
IF EXIST ZIP.LOG DEL ZIP.LOG
|
||||
|
||||
ECHO Creating NCPTSTA.ZIP > ZIP.LOG
|
||||
ZIP -r NCPTSTA.ZIP RUN.LOG SUMMARY.TXT COMPARE.LOG OUT PUBOUT POSTNOV POSTPUB CMP >> ZIP.LOG
|
||||
|
||||
REM Cleanup is intentionally not performed here. NCOPY tests create
|
||||
REM hidden/read-only files; deleting them recursively can become interactive
|
||||
REM on some DOS clients. Re-run NCPTSTA to reset the fixed test tree.
|
||||
CD \
|
||||
ECHO.
|
||||
ECHO ZIP step finished.
|
||||
ECHO Check:
|
||||
ECHO F:\NCMP\NCPTSTA.ZIP
|
||||
ECHO F:\NCMP\ZIP.LOG
|
||||
ECHO.
|
||||
|
||||
@@ -1,58 +1,53 @@
|
||||
# NCOPY tests
|
||||
|
||||
Novell-only NCOPY tests.
|
||||
Automated NCOPY comparison tests for MARS NWE DOS tools.
|
||||
|
||||
`NCOPY` is a larger copy/metadata tool. The current test is designed to
|
||||
capture Novell behaviour first and compare the Open Source DOS utility against
|
||||
it before the implementation is completed.
|
||||
|
||||
## Files
|
||||
|
||||
| File | Purpose |
|
||||
| --- | --- |
|
||||
| `NCPTSTA.BAT` | Automated no-pause/no-screenshot NCOPY test. Writes results to `F:\NCMP`. |
|
||||
| `README_AUTO.md` | Details for the automated test. |
|
||||
| `NCPTSTA.BAT` | Automated Novell-vs-PUBLIC NCOPY comparison. Writes results to `F:\NCMP`. |
|
||||
| `NCPTZIP.BAT` | Optional packer for `F:\NCMP\NCPTSTA.ZIP`. |
|
||||
| `README_AUTO.md` | Older notes for the automated test. |
|
||||
| `NCPTSTN.BAT` | Manual/pause-based NCOPY baseline test. |
|
||||
| `NCPCMPN.BAT` | Manual repeat selected comparisons/output. |
|
||||
| `NCPTSTM.TST` | MARS/dosutils regression notes/spec. |
|
||||
|
||||
## Recommended now
|
||||
## Layout
|
||||
|
||||
Use:
|
||||
`NCPTSTA.BAT` uses the same direction as the other tool tests:
|
||||
|
||||
| Directory | Meaning |
|
||||
| --- | --- |
|
||||
| `OUT` | command output from Novell `NPUBLIC\NCOPY` |
|
||||
| `PUBOUT` | command output from Open Source `PUBLIC\NCOPY` |
|
||||
| `POSTNOV` | resulting file state captured with Novell tools |
|
||||
| `POSTPUB` | resulting file state captured with Open Source tools |
|
||||
| `COMPARE.LOG` | `FC` comparisons for command output and resulting state |
|
||||
|
||||
## Run
|
||||
|
||||
From a logged-in Supervisor session:
|
||||
|
||||
```text
|
||||
NCPTSTA.BAT
|
||||
F:\NCPTSTA
|
||||
```
|
||||
|
||||
Then collect:
|
||||
Then inspect:
|
||||
|
||||
```text
|
||||
F:\NCMP\NCPTSTA.ZIP
|
||||
```
|
||||
|
||||
or, if ZIP is not installed yet:
|
||||
|
||||
```text
|
||||
F:\NCMP\RUN.LOG
|
||||
F:\NCMP\COMPARE.LOG
|
||||
F:\NCMP\SUMMARY.TXT
|
||||
F:\NCMP\PRE\*.OUT
|
||||
F:\NCMP\POST\*.OUT
|
||||
F:\NCMP\CMP\*.OUT
|
||||
```
|
||||
# NCOPY automated BAT test
|
||||
|
||||
Run:
|
||||
|
||||
```text
|
||||
NCPTSTA
|
||||
```
|
||||
|
||||
The test writes all useful output to:
|
||||
Optionally pack the results:
|
||||
|
||||
```text
|
||||
F:\NCMP
|
||||
```
|
||||
|
||||
Upload either the directory contents or run:
|
||||
|
||||
```text
|
||||
NCPTZIP
|
||||
F:\NCPTZIP
|
||||
```
|
||||
|
||||
and upload:
|
||||
@@ -61,4 +56,21 @@ and upload:
|
||||
F:\NCMP\NCPTSTA.ZIP
|
||||
```
|
||||
|
||||
This version avoids wildcard deletes, interactive overwrite prompts, PAUSE, and automatic ZIP.
|
||||
## Current matrix
|
||||
|
||||
The automated comparison covers:
|
||||
|
||||
- `NCOPY /?`
|
||||
- `NCOPY` with no arguments
|
||||
- single-file copy with `TO`
|
||||
- copy of hidden/archive and read-only/archive files
|
||||
- `/V`
|
||||
- `/S`
|
||||
- `/S /E`
|
||||
- `/A /S`
|
||||
- `/M /S`, including source archive-bit readback
|
||||
- missing source
|
||||
- `/E` without `/S`
|
||||
|
||||
The resulting destination/source state is checked with the already validated
|
||||
`FLAG`, `NDIR`, and `RIGHTS` tools.
|
||||
|
||||
Reference in New Issue
Block a user