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:
1
test/README.TXT
Normal file
1
test/README.TXT
Normal file
@@ -0,0 +1 @@
|
||||
See README.md for the test layout. DOS-run files keep 8.3 names.
|
||||
34
test/README.md
Normal file
34
test/README.md
Normal file
@@ -0,0 +1,34 @@
|
||||
# MARS dosutils tests
|
||||
|
||||
This directory contains DOS-side regression and compatibility tests for `mars-dosutils`.
|
||||
|
||||
The tests are grouped by feature so that Novell reference-tool checks and our own tool regressions stay separated but easy to compare.
|
||||
|
||||
## Directory layout
|
||||
|
||||
| Directory | Purpose |
|
||||
| --- | --- |
|
||||
| `flag/` | File/directory attribute tests, Novell `NPUBLIC\FLAG` baseline and MARS `PUBLIC\FLAG` regression notes. |
|
||||
| `flagdir/` | Planned: directory-specific FLAG and recursive attribute tests. |
|
||||
| `grant/` | Planned: trustee grant tests. |
|
||||
| `rights/` | Planned: effective-rights and trustee readback tests. |
|
||||
| `map/` | Planned: MAP command and login-script mapping tests. |
|
||||
| `login/` | Planned: LOGIN/NLOGIN compatibility tests. |
|
||||
| `logout/` | Planned: LOGOUT/NLOGOUT compatibility tests. |
|
||||
|
||||
## Naming
|
||||
|
||||
DOS-executed files should use 8.3 names. Keep Novell reference tests and MARS tests close together, but name them clearly.
|
||||
|
||||
Suggested suffixes:
|
||||
|
||||
- `*N.BAT` for Novell-only baseline tests using `NPUBLIC`/`NLOGIN`.
|
||||
- `*M.TST` or `*M.BAT` for MARS/dosutils tests using `PUBLIC`/`LOGIN`.
|
||||
- `*CMP.BAT` for comparison/helper scripts.
|
||||
|
||||
## Expected workflow
|
||||
|
||||
1. Run the Novell baseline test first.
|
||||
2. Check the MARS NWE server log for the expected NCP path and completion codes.
|
||||
3. Run or implement the matching MARS/dosutils regression test.
|
||||
4. Keep notes in the feature directory `README.md`.
|
||||
101
test/creator/CIXSTA.BAT
Normal file
101
test/creator/CIXSTA.BAT
Normal file
@@ -0,0 +1,101 @@
|
||||
@ECHO OFF
|
||||
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
|
||||
REM Run as SUPERVISOR.
|
||||
REM
|
||||
REM Test tree:
|
||||
REM F:\CIXTEST
|
||||
REM Result tree:
|
||||
REM F:\CIXCMP
|
||||
|
||||
F:
|
||||
CD \
|
||||
|
||||
REM --- Clean generated test/result directories (contents only). ---
|
||||
IF EXIST CIXTEST\NUL DELTREE /Y CIXTEST\*.*
|
||||
IF EXIST CIXCMP\NUL DELTREE /Y CIXCMP\*.*
|
||||
|
||||
IF NOT EXIST CIXTEST\NUL MD CIXTEST
|
||||
IF NOT EXIST CIXTEST\SUP\NUL MD CIXTEST\SUP
|
||||
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 EXIST F:\CIXCMP\RUN.LOG DEL F:\CIXCMP\RUN.LOG
|
||||
IF EXIST F:\CIXCMP\SUMMARY.TXT DEL F:\CIXCMP\SUMMARY.TXT
|
||||
IF EXIST F:\CIXCMP\CIXSTA.ZIP DEL F:\CIXCMP\CIXSTA.ZIP
|
||||
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
|
||||
|
||||
REM Reset files from previous runs.
|
||||
IF EXIST F:\CIXTEST\SUP\S_SUP.TXT DEL F:\CIXTEST\SUP\S_SUP.TXT
|
||||
IF EXIST F:\CIXTEST\SUP\S_ARCH.TXT DEL F:\CIXTEST\SUP\S_ARCH.TXT
|
||||
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. >> F:\CIXCMP\RUN.LOG
|
||||
|
||||
ECHO SUP CREATOR FILE > F:\CIXTEST\SUP\S_SUP.TXT
|
||||
ECHO SUP ARCHIVE FILE > F:\CIXTEST\SUP\S_ARCH.TXT
|
||||
ECHO SUP ALL FILE > F:\CIXTEST\SUP\S_ALL.TXT
|
||||
|
||||
NPUBLIC\FLAG F:\CIXTEST\SUP\S_SUP.TXT N >> F:\CIXCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\CIXTEST\SUP\S_ARCH.TXT N >> F:\CIXCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\CIXTEST\SUP\S_ALL.TXT N >> F:\CIXCMP\RUN.LOG
|
||||
|
||||
ECHO === PRE READBACK === >> F:\CIXCMP\RUN.LOG
|
||||
NPUBLIC\NDIR F:\CIXTEST\SUP /DATES > F:\CIXCMP\PRE\SUPDAT.OUT
|
||||
NPUBLIC\NDIR F:\CIXTEST\SUP /RIGHTS > F:\CIXCMP\PRE\SUPRGT.OUT
|
||||
PUBLIC\CREATOR F:\CIXTEST\SUP\S_SUP.TXT /SHOW > F:\CIXCMP\PRE\CSUP.OUT
|
||||
PUBLIC\CREATOR F:\CIXTEST\SUP\S_ARCH.TXT /SHOW > F:\CIXCMP\PRE\CARCH.OUT
|
||||
PUBLIC\CREATOR F:\CIXTEST\SUP\S_ALL.TXT /SHOW > F:\CIXCMP\PRE\CALL.OUT
|
||||
|
||||
ECHO === CREATOR TOOL SET INFO === >> F:\CIXCMP\RUN.LOG
|
||||
|
||||
REM Set fileinfo xattr fields.
|
||||
PUBLIC\CREATOR F:\CIXTEST\SUP\S_SUP.TXT /CREATOR MARIO >> F:\CIXCMP\RUN.LOG
|
||||
PUBLIC\CREATOR F:\CIXTEST\SUP\S_SUP.TXT /MODIFIER MARIO >> F:\CIXCMP\RUN.LOG
|
||||
|
||||
REM Set archive xattr fields.
|
||||
PUBLIC\CREATOR F:\CIXTEST\SUP\S_ARCH.TXT /ARCHIVE MARIO >> F:\CIXCMP\RUN.LOG
|
||||
|
||||
REM Set all three groups with one command and explicit date/time.
|
||||
PUBLIC\CREATOR F:\CIXTEST\SUP\S_ALL.TXT /ALL MARIO 2026-05-25 16:12:00 >> F:\CIXCMP\RUN.LOG
|
||||
|
||||
ECHO === POST READBACK === >> F:\CIXCMP\RUN.LOG
|
||||
NPUBLIC\NDIR F:\CIXTEST\SUP /DATES > F:\CIXCMP\POST\SUPDAT.OUT
|
||||
NPUBLIC\NDIR F:\CIXTEST\SUP /RIGHTS > F:\CIXCMP\POST\SUPRGT.OUT
|
||||
PUBLIC\CREATOR F:\CIXTEST\SUP\S_SUP.TXT /SHOW > F:\CIXCMP\POST\CSUP.OUT
|
||||
PUBLIC\CREATOR F:\CIXTEST\SUP\S_ARCH.TXT /SHOW > F:\CIXCMP\POST\CARCH.OUT
|
||||
PUBLIC\CREATOR F:\CIXTEST\SUP\S_ALL.TXT /SHOW > F:\CIXCMP\POST\CALL.OUT
|
||||
|
||||
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
|
||||
|
||||
ECHO === SUMMARY === > F:\CIXCMP\SUMMARY.TXT
|
||||
ECHO CIXSTA creator/xattr test with PUBLIC\CREATOR finished. >> F:\CIXCMP\SUMMARY.TXT
|
||||
ECHO. >> F:\CIXCMP\SUMMARY.TXT
|
||||
ECHO Expected: >> F:\CIXCMP\SUMMARY.TXT
|
||||
ECHO - S_SUP.TXT has creator/modifier MARIO via user.mars_nwe.fileinfo. >> F:\CIXCMP\SUMMARY.TXT
|
||||
ECHO - S_ARCH.TXT has archive date/time/archiver MARIO via user.mars_nwe.archive. >> F:\CIXCMP\SUMMARY.TXT
|
||||
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. >> 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 Jetzt auf Linux cix_collect_xattr.sh ausfuehren, dann CIXZIP.
|
||||
ECHO.
|
||||
26
test/creator/CIXZIP.BAT
Normal file
26
test/creator/CIXZIP.BAT
Normal file
@@ -0,0 +1,26 @@
|
||||
@ECHO OFF
|
||||
REM CIXZIP.BAT
|
||||
REM Optional packer for CIXSTA result files.
|
||||
REM Requires ZIP.EXE in PATH or current directory.
|
||||
|
||||
F:
|
||||
CD \CIXCMP
|
||||
|
||||
IF EXIST CIXSTA.ZIP DEL CIXSTA.ZIP
|
||||
IF EXIST ZIP.LOG DEL ZIP.LOG
|
||||
|
||||
ECHO Creating CIXSTA.ZIP > ZIP.LOG
|
||||
ZIP -r CIXSTA.ZIP RUN.LOG SUMMARY.TXT PRE POST LINUX >> 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 \CIXTEST\NUL DELTREE /Y \CIXTEST >> ZIP.LOG
|
||||
CD \
|
||||
ECHO.
|
||||
ECHO ZIP step finished.
|
||||
ECHO Check:
|
||||
ECHO F:\CIXCMP\CIXSTA.ZIP
|
||||
ECHO F:\CIXCMP\ZIP.LOG
|
||||
ECHO.
|
||||
75
test/creator/README.md
Normal file
75
test/creator/README.md
Normal file
@@ -0,0 +1,75 @@
|
||||
# CREATOR / xattr automated test
|
||||
|
||||
This replaces the old FILER/manual creator-xattr test with a direct test using
|
||||
`PUBLIC\CREATOR.EXE`.
|
||||
|
||||
## Requirements
|
||||
|
||||
`PUBLIC\CREATOR.EXE` from the new dosutils tree must be installed.
|
||||
|
||||
## DOS flow
|
||||
|
||||
Run as `SUPERVISOR`:
|
||||
|
||||
```text
|
||||
CIXSTA
|
||||
```
|
||||
|
||||
Then run the Linux-side collector:
|
||||
|
||||
```sh
|
||||
sudo ./cix_collect_xattr.sh
|
||||
```
|
||||
|
||||
Then package in DOS:
|
||||
|
||||
```text
|
||||
CIXZIP
|
||||
```
|
||||
|
||||
Result ZIP:
|
||||
|
||||
```text
|
||||
F:\CIXCMP\CIXSTA.ZIP
|
||||
```
|
||||
|
||||
Linux package with server log:
|
||||
|
||||
```sh
|
||||
sudo ./mars_packtest_v3.sh cixsta 5 mario
|
||||
```
|
||||
|
||||
## Test directories
|
||||
|
||||
```text
|
||||
F:\CIXTEST
|
||||
F:\CIXCMP
|
||||
```
|
||||
|
||||
## What CIXSTA does
|
||||
|
||||
```text
|
||||
S_SUP.TXT:
|
||||
PUBLIC\CREATOR ... /CREATOR MARIO
|
||||
PUBLIC\CREATOR ... /MODIFIER MARIO
|
||||
Expected xattr: user.mars_nwe.fileinfo
|
||||
|
||||
S_ARCH.TXT:
|
||||
PUBLIC\CREATOR ... /ARCHIVE MARIO
|
||||
Expected xattr: user.mars_nwe.archive
|
||||
|
||||
S_ALL.TXT:
|
||||
PUBLIC\CREATOR ... /ALL MARIO 2026-05-25 16:12:00
|
||||
Expected xattrs: user.mars_nwe.fileinfo and user.mars_nwe.archive
|
||||
```
|
||||
|
||||
## Important outputs
|
||||
|
||||
```text
|
||||
F:\CIXCMP\POST\CSUP.OUT
|
||||
F:\CIXCMP\POST\CARCH.OUT
|
||||
F:\CIXCMP\POST\CALL.OUT
|
||||
F:\CIXCMP\POST\SUPDAT.OUT
|
||||
F:\CIXCMP\LINUX\getfattr.txt
|
||||
F:\CIXCMP\LINUX\xattr_focus.txt
|
||||
```
|
||||
64
test/creator/cix_collect_xattr.sh
Normal file
64
test/creator/cix_collect_xattr.sh
Normal file
@@ -0,0 +1,64 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# cix_collect_xattr.sh
|
||||
#
|
||||
# Linux-side collector for the CIXSTA CREATOR/xattr test.
|
||||
#
|
||||
# Run as root after CIXSTA.BAT and before CIXZIP.BAT:
|
||||
# sudo ./cix_collect_xattr.sh
|
||||
#
|
||||
|
||||
set -eu
|
||||
|
||||
SYS="/var/mars_nwe/SYS"
|
||||
TREE="$SYS/CIXTEST"
|
||||
OUT="$SYS/CIXCMP/LINUX"
|
||||
|
||||
mkdir -p "$OUT"
|
||||
|
||||
echo "CIX CREATOR xattr/stat collection" > "$OUT/collector_info.txt"
|
||||
echo "Created: $(date)" >> "$OUT/collector_info.txt"
|
||||
echo "Tree: $TREE" >> "$OUT/collector_info.txt"
|
||||
echo >> "$OUT/collector_info.txt"
|
||||
|
||||
if ! command -v getfattr >/dev/null 2>&1; then
|
||||
echo "ERROR: getfattr not installed. Install attr package." | tee "$OUT/getfattr_missing.txt"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
find "$TREE" -xdev -print | sort > "$OUT/files.txt"
|
||||
|
||||
{
|
||||
echo "path|uid|gid|mode|size|mtime|ctime|atime"
|
||||
while IFS= read -r p; do
|
||||
stat -c '%n|%u|%g|%a|%s|%y|%z|%x' "$p"
|
||||
done < "$OUT/files.txt"
|
||||
} > "$OUT/stat.txt"
|
||||
|
||||
{
|
||||
while IFS= read -r p; do
|
||||
echo "### $p"
|
||||
getfattr -m - --absolute-names "$p" 2>/dev/null || true
|
||||
echo
|
||||
done < "$OUT/files.txt"
|
||||
} > "$OUT/xattr_names.txt"
|
||||
|
||||
{
|
||||
while IFS= read -r p; do
|
||||
echo "### $p"
|
||||
getfattr -d -m - -e hex --absolute-names "$p" 2>/dev/null || true
|
||||
echo
|
||||
done < "$OUT/files.txt"
|
||||
} > "$OUT/getfattr.txt"
|
||||
|
||||
grep -iE 'mars|netware|trust|owner|creator|modifier|archiv|fileinfo|dos|attr|nwe' "$OUT/getfattr.txt" > "$OUT/xattr_focus.txt" || true
|
||||
|
||||
chmod -R a+r "$OUT"
|
||||
|
||||
echo "Wrote:"
|
||||
echo " $OUT/collector_info.txt"
|
||||
echo " $OUT/files.txt"
|
||||
echo " $OUT/stat.txt"
|
||||
echo " $OUT/xattr_names.txt"
|
||||
echo " $OUT/getfattr.txt"
|
||||
echo " $OUT/xattr_focus.txt"
|
||||
37
test/deploy.sh
Normal file
37
test/deploy.sh
Normal file
@@ -0,0 +1,37 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
SRC="/home/mario/mars/mars-nwe-build/dosutils/net.exe"
|
||||
SYS="/var/mars_nwe/SYS"
|
||||
|
||||
# Nur unsere aktuell getesteten Open-Source-Tools überschreiben:
|
||||
install -m 0644 "$SRC" "$SYS/public/login.exe"
|
||||
install -m 0644 "$SRC" "$SYS/login/login.exe"
|
||||
|
||||
install -m 0644 "$SRC" "$SYS/public/map.exe"
|
||||
install -m 0644 "$SRC" "$SYS/login/map.exe"
|
||||
|
||||
install -m 0644 "$SRC" "$SYS/public/slist.exe"
|
||||
install -m 0644 "$SRC" "$SYS/login/slist.exe"
|
||||
|
||||
install -m 0644 "$SRC" "$SYS/public/pathins.exe"
|
||||
install -m 0644 "$SRC" "$SYS/public/pathdel.exe"
|
||||
install -m 0644 "$SRC" "$SYS/public/path.exe"
|
||||
install -m 0644 "$SRC" "$SYS/public/flag.exe"
|
||||
install -m 0644 "$SRC" "$SYS/public/flagdir.exe"
|
||||
install -m 0644 "$SRC" "$SYS/public/rights.exe"
|
||||
install -m 0644 "$SRC" "$SYS/public/grant.exe"
|
||||
install -m 0644 "$SRC" "$SYS/public/revoke.exe"
|
||||
install -m 0644 "$SRC" "$SYS/public/remove.exe"
|
||||
install -m 0644 "$SRC" "$SYS/public/ndir.exe"
|
||||
|
||||
# Optional nur wenn du gerade diese Open-Source-Version testen willst:
|
||||
# install -m 0644 "$SRC" "$SYS/public/passwd.exe"
|
||||
# install -m 0644 "$SRC" "$SYS/public/capture.exe"
|
||||
# install -m 0644 "$SRC" "$SYS/public/endcap.exe"
|
||||
# install -m 0644 "$SRC" "$SYS/public/logout.exe"
|
||||
|
||||
install -m 0644 "$SRC" "$SYS/public/tests.exe"
|
||||
|
||||
|
||||
echo "deployed selected Open Source DOS utils from: $SRC"
|
||||
63
test/filer/FILCMPN.BAT
Normal file
63
test/filer/FILCMPN.BAT
Normal file
@@ -0,0 +1,63 @@
|
||||
@ECHO OFF
|
||||
REM FILCMPN.BAT
|
||||
REM Repeat comparison of FILER PRE/POST output files.
|
||||
REM
|
||||
REM Run after FILPREN.BAT, manual NPUBLIC\FILER, and FILPOSTN.BAT.
|
||||
|
||||
CLS
|
||||
ECHO === FILCMPN: Compare FILER PRE/POST outputs ===
|
||||
ECHO.
|
||||
ECHO Unterschiede sind OK, wenn sie bewusst in FILER erzeugt wurden.
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === C01 FLAG A.TXT ===
|
||||
FC F:\TFILE\PRE\FLAGA.OUT F:\TFILE\POST\FLAGA.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === C02 FLAG B.TXT ===
|
||||
FC F:\TFILE\PRE\FLAGB.OUT F:\TFILE\POST\FLAGB.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === C03 FLAG KEEP.TXT ===
|
||||
FC F:\TFILE\PRE\FLAGK.OUT F:\TFILE\POST\FLAGK.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === C04 NDIR ===
|
||||
FC F:\TFILE\PRE\NDIR.OUT F:\TFILE\POST\NDIR.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === C05 DATES ===
|
||||
FC F:\TFILE\PRE\DATES.OUT F:\TFILE\POST\DATES.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === C06 NDIR RIGHTS ===
|
||||
FC F:\TFILE\PRE\RIGHTS.OUT F:\TFILE\POST\RIGHTS.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === C07 RIGHTS Directory ===
|
||||
FC F:\TFILE\PRE\TRUST.OUT F:\TFILE\POST\TRUST.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === C08 RIGHTS A.TXT ===
|
||||
FC F:\TFILE\PRE\TRUSTA.OUT F:\TFILE\POST\TRUSTA.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === FILCMPN fertig ===
|
||||
149
test/filer/FILPOSTN.BAT
Normal file
149
test/filer/FILPOSTN.BAT
Normal file
@@ -0,0 +1,149 @@
|
||||
@ECHO OFF
|
||||
REM FILPOSTN.BAT
|
||||
REM Novell-only FILER post-test readback and compare for MARS NWE.
|
||||
REM
|
||||
REM Run this after manual NPUBLIC\FILER test.
|
||||
REM
|
||||
REM Vergleicht:
|
||||
REM F:\TFILE\PRE\*.OUT
|
||||
REM F:\TFILE\POST\*.OUT
|
||||
|
||||
CLS
|
||||
ECHO === FILPOSTN: Novell FILER Post-Test Compare ===
|
||||
ECHO.
|
||||
ECHO Dieses Script erzeugt POST-Ausgaben und vergleicht sie mit PRE.
|
||||
ECHO Unterschiede sind OK, wenn du in FILER bewusst etwas geaendert hast.
|
||||
ECHO Unerwartete Unterschiede bitte gegen Serverlog pruefen.
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === Q01: POST-Ausgaben erzeugen ===
|
||||
ECHO Schreibe POST\FLAGA.OUT
|
||||
NPUBLIC\FLAG F:\TFILE\A.TXT > F:\TFILE\POST\FLAGA.OUT
|
||||
ECHO Schreibe POST\FLAGB.OUT
|
||||
NPUBLIC\FLAG F:\TFILE\B.TXT > F:\TFILE\POST\FLAGB.OUT
|
||||
ECHO Schreibe POST\FLAGK.OUT
|
||||
NPUBLIC\FLAG F:\TFILE\KEEP.TXT > F:\TFILE\POST\FLAGK.OUT
|
||||
ECHO Schreibe POST\FLAGC.OUT
|
||||
NPUBLIC\FLAG F:\TFILE\SUBDIR\C.TXT > F:\TFILE\POST\FLAGC.OUT
|
||||
ECHO Schreibe POST\NDIR.OUT
|
||||
NPUBLIC\NDIR F:\TFILE > F:\TFILE\POST\NDIR.OUT
|
||||
ECHO Schreibe POST\DATES.OUT
|
||||
NPUBLIC\NDIR F:\TFILE /DATES > F:\TFILE\POST\DATES.OUT
|
||||
ECHO Schreibe POST\RIGHTS.OUT
|
||||
NPUBLIC\NDIR F:\TFILE /RIGHTS > F:\TFILE\POST\RIGHTS.OUT
|
||||
ECHO Schreibe POST\TRUST.OUT
|
||||
NPUBLIC\RIGHTS F:\TFILE > F:\TFILE\POST\TRUST.OUT
|
||||
ECHO Schreibe POST\TRUSTA.OUT
|
||||
NPUBLIC\RIGHTS F:\TFILE\A.TXT > F:\TFILE\POST\TRUSTA.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === Q02: Vergleich FLAG A.TXT ===
|
||||
FC F:\TFILE\PRE\FLAGA.OUT F:\TFILE\POST\FLAGA.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === Q03: Vergleich FLAG B.TXT ===
|
||||
FC F:\TFILE\PRE\FLAGB.OUT F:\TFILE\POST\FLAGB.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === Q04: Vergleich FLAG KEEP.TXT ===
|
||||
FC F:\TFILE\PRE\FLAGK.OUT F:\TFILE\POST\FLAGK.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === Q05: Vergleich NDIR ===
|
||||
FC F:\TFILE\PRE\NDIR.OUT F:\TFILE\POST\NDIR.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === Q06: Vergleich DATES ===
|
||||
FC F:\TFILE\PRE\DATES.OUT F:\TFILE\POST\DATES.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === Q07: Vergleich NDIR RIGHTS ===
|
||||
FC F:\TFILE\PRE\RIGHTS.OUT F:\TFILE\POST\RIGHTS.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === Q08: Vergleich RIGHTS Directory ===
|
||||
FC F:\TFILE\PRE\TRUST.OUT F:\TFILE\POST\TRUST.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === Q09: Vergleich RIGHTS A.TXT ===
|
||||
FC F:\TFILE\PRE\TRUSTA.OUT F:\TFILE\POST\TRUSTA.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === Q10: POST-Ausgaben anzeigen: FLAG A ===
|
||||
TYPE F:\TFILE\POST\FLAGA.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === Q11: POST-Ausgaben anzeigen: FLAG B ===
|
||||
TYPE F:\TFILE\POST\FLAGB.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === Q12: POST-Ausgaben anzeigen: FLAG KEEP ===
|
||||
TYPE F:\TFILE\POST\FLAGK.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === Q13: POST NDIR ===
|
||||
TYPE F:\TFILE\POST\NDIR.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === Q14: POST DATES ===
|
||||
TYPE F:\TFILE\POST\DATES.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === Q15: Cleanup Attribute ===
|
||||
NPUBLIC\FLAG F:\TFILE\A.TXT N
|
||||
NPUBLIC\FLAG F:\TFILE\B.TXT N
|
||||
NPUBLIC\FLAG F:\TFILE\KEEP.TXT N
|
||||
NPUBLIC\FLAG F:\TFILE\SUBDIR\C.TXT N
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === Q16: Final NDIR ===
|
||||
NPUBLIC\NDIR F:\TFILE
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === FILPOSTN fertig ===
|
||||
ECHO.
|
||||
ECHO Vergleichsdateien liegen hier:
|
||||
ECHO F:\TFILE\PRE\*.OUT
|
||||
ECHO F:\TFILE\POST\*.OUT
|
||||
ECHO.
|
||||
ECHO Im Serverlog pruefen:
|
||||
ECHO FILER Info-Readback
|
||||
ECHO NCP22/25 change bits bei Aenderungen
|
||||
ECHO NCP22/25 Set Directory/File Information
|
||||
ECHO xattr-Metadaten falls FILER passende Felder setzt
|
||||
ECHO keine unerwarteten Completion Codes
|
||||
ECHO.
|
||||
153
test/filer/FILPREN.BAT
Normal file
153
test/filer/FILPREN.BAT
Normal file
@@ -0,0 +1,153 @@
|
||||
@ECHO OFF
|
||||
REM FILPREN.BAT
|
||||
REM Novell-only FILER pre-test setup for MARS NWE.
|
||||
REM
|
||||
REM Run this first, then run NPUBLIC\FILER manually.
|
||||
REM After exiting FILER, run FILPOSTN.BAT.
|
||||
REM
|
||||
REM Testordner:
|
||||
REM F:\TFILE
|
||||
REM
|
||||
REM Vergleichsdateien:
|
||||
REM F:\TFILE\PRE\*.OUT
|
||||
REM F:\TFILE\POST\*.OUT
|
||||
REM
|
||||
REM Wichtig:
|
||||
REM Die Ausgaben werden per Redirect in Dateien geschrieben, damit
|
||||
REM FILPOSTN.BAT sie spaeter mit FC vergleichen kann.
|
||||
|
||||
CLS
|
||||
ECHO === FILPREN: Novell FILER Pre-Test ===
|
||||
ECHO.
|
||||
ECHO Schrittfolge:
|
||||
ECHO 1. FILPREN.BAT ausfuehren
|
||||
ECHO 2. NPUBLIC\FILER manuell starten
|
||||
ECHO 3. In FILER F:\TFILE pruefen/aendern
|
||||
ECHO 4. FILPOSTN.BAT ausfuehren
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === P00: Testordner vorbereiten ===
|
||||
F:
|
||||
CD \
|
||||
|
||||
REM --- Clean generated test/result directories (contents only). ---
|
||||
IF EXIST TFILE\NUL DELTREE /Y TFILE\*.*
|
||||
IF NOT EXIST TFILE MD TFILE
|
||||
CD TFILE
|
||||
IF NOT EXIST PRE MD PRE
|
||||
IF NOT EXIST POST MD POST
|
||||
ECHO FILER TEST A > A.TXT
|
||||
ECHO FILER TEST B > B.TXT
|
||||
ECHO FILER KEEP > KEEP.TXT
|
||||
IF NOT EXIST SUBDIR MD SUBDIR
|
||||
ECHO FILER SUB C > SUBDIR\C.TXT
|
||||
CD \
|
||||
ECHO.
|
||||
ECHO Angelegt/geprueft:
|
||||
ECHO F:\TFILE\A.TXT
|
||||
ECHO F:\TFILE\B.TXT
|
||||
ECHO F:\TFILE\KEEP.TXT
|
||||
ECHO F:\TFILE\SUBDIR\C.TXT
|
||||
ECHO F:\TFILE\PRE
|
||||
ECHO F:\TFILE\POST
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === P01: Alte Vergleichsausgaben loeschen ===
|
||||
DEL F:\TFILE\PRE\*.OUT
|
||||
DEL F:\TFILE\POST\*.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === P02: Attribute normalisieren ===
|
||||
NPUBLIC\FLAG F:\TFILE\A.TXT N
|
||||
NPUBLIC\FLAG F:\TFILE\B.TXT N
|
||||
NPUBLIC\FLAG F:\TFILE\KEEP.TXT N
|
||||
NPUBLIC\FLAG F:\TFILE\SUBDIR\C.TXT N
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === P03: Referenz-Attribute vor FILER setzen ===
|
||||
ECHO A.TXT: +H
|
||||
ECHO B.TXT: +RO
|
||||
ECHO KEEP.TXT: +A
|
||||
NPUBLIC\FLAG F:\TFILE\A.TXT +H
|
||||
NPUBLIC\FLAG F:\TFILE\B.TXT +RO
|
||||
NPUBLIC\FLAG F:\TFILE\KEEP.TXT +A
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === P04: PRE-Ausgaben erzeugen ===
|
||||
ECHO Schreibe PRE\FLAGA.OUT
|
||||
NPUBLIC\FLAG F:\TFILE\A.TXT > F:\TFILE\PRE\FLAGA.OUT
|
||||
ECHO Schreibe PRE\FLAGB.OUT
|
||||
NPUBLIC\FLAG F:\TFILE\B.TXT > F:\TFILE\PRE\FLAGB.OUT
|
||||
ECHO Schreibe PRE\FLAGK.OUT
|
||||
NPUBLIC\FLAG F:\TFILE\KEEP.TXT > F:\TFILE\PRE\FLAGK.OUT
|
||||
ECHO Schreibe PRE\NDIR.OUT
|
||||
NPUBLIC\NDIR F:\TFILE > F:\TFILE\PRE\NDIR.OUT
|
||||
ECHO Schreibe PRE\DATES.OUT
|
||||
NPUBLIC\NDIR F:\TFILE /DATES > F:\TFILE\PRE\DATES.OUT
|
||||
ECHO Schreibe PRE\RIGHTS.OUT
|
||||
NPUBLIC\NDIR F:\TFILE /RIGHTS > F:\TFILE\PRE\RIGHTS.OUT
|
||||
ECHO Schreibe PRE\TRUST.OUT
|
||||
NPUBLIC\RIGHTS F:\TFILE > F:\TFILE\PRE\TRUST.OUT
|
||||
ECHO Schreibe PRE\TRUSTA.OUT
|
||||
NPUBLIC\RIGHTS F:\TFILE\A.TXT > F:\TFILE\PRE\TRUSTA.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === P05: PRE-Ausgaben kurz anzeigen ===
|
||||
ECHO --- PRE FLAG A ---
|
||||
TYPE F:\TFILE\PRE\FLAGA.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === P06: PRE FLAG B ===
|
||||
TYPE F:\TFILE\PRE\FLAGB.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === P07: PRE FLAG KEEP ===
|
||||
TYPE F:\TFILE\PRE\FLAGK.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === P08: PRE NDIR ===
|
||||
TYPE F:\TFILE\PRE\NDIR.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === P09: PRE DATES ===
|
||||
TYPE F:\TFILE\PRE\DATES.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === FILPREN fertig ===
|
||||
ECHO.
|
||||
ECHO Jetzt manuell starten:
|
||||
ECHO.
|
||||
ECHO NPUBLIC\FILER
|
||||
ECHO.
|
||||
ECHO In FILER:
|
||||
ECHO - zu F:\TFILE wechseln
|
||||
ECHO - A.TXT, B.TXT, KEEP.TXT, SUBDIR ansehen
|
||||
ECHO - Attribute/Informationen aendern, wenn moeglich
|
||||
ECHO - FILER verlassen
|
||||
ECHO.
|
||||
ECHO Danach ausfuehren:
|
||||
ECHO.
|
||||
ECHO FILPOSTN.BAT
|
||||
ECHO.
|
||||
33
test/filer/FILTSTM.TST
Normal file
33
test/filer/FILTSTM.TST
Normal file
@@ -0,0 +1,33 @@
|
||||
# FILTSTM.TST
|
||||
# MARS/dosutils FILER regression notes/spec.
|
||||
#
|
||||
# Test flow:
|
||||
#
|
||||
# 1. `FILPREN.BAT`
|
||||
# - creates F:\TFILE
|
||||
# - writes baseline output files to F:\TFILE\PRE\*.OUT
|
||||
#
|
||||
# 2. manual `NPUBLIC\FILER`
|
||||
# - inspect/change files in F:\TFILE
|
||||
#
|
||||
# 3. `FILPOSTN.BAT`
|
||||
# - writes post-FILER output files to F:\TFILE\POST\*.OUT
|
||||
# - compares PRE vs POST with FC
|
||||
#
|
||||
# 4. optional `FILCMPN.BAT`
|
||||
# - repeats only the comparisons
|
||||
#
|
||||
#
|
||||
MANUAL FILER CHANGE SET:
|
||||
Recommended controlled changes:
|
||||
A.TXT toggle Hidden
|
||||
B.TXT toggle Read Only
|
||||
KEEP.TXT toggle Archive Needed
|
||||
|
||||
For a readback-only pass, inspect the same entries but do not save changes.
|
||||
FILPOSTN.BAT should then show no FC differences.
|
||||
|
||||
|
||||
Expected:
|
||||
# - FC reports no differences if FILER was only inspected.
|
||||
# - FC reports intentional differences if attributes/metadata were changed.
|
||||
211
test/filer/FILTSTN.BAT
Normal file
211
test/filer/FILTSTN.BAT
Normal file
@@ -0,0 +1,211 @@
|
||||
@ECHO OFF
|
||||
REM FILTSTN.BAT
|
||||
REM Novell-only FILER baseline / manual GUI test prep for MARS NWE.
|
||||
REM
|
||||
REM NPUBLIC = originale Novell Tools
|
||||
REM PUBLIC = MARS/dosutils Tools
|
||||
REM
|
||||
REM Testordner:
|
||||
REM F:\TFILE
|
||||
REM
|
||||
REM Ziel:
|
||||
REM - Testdaten fuer NPUBLIC\FILER vorbereiten
|
||||
REM - Attribute/Rechte/Datum-Readback vor und nach FILER pruefen
|
||||
REM - Serverlog fuer NCP22/25 Set Directory/File Information,
|
||||
REM NCP22/1E Info-Readback, NCP23/F3/F4 und NCP87 beobachten
|
||||
REM
|
||||
REM FILER ist ein DOS-GUI-Tool. Der eigentliche FILER-Test ist manuell.
|
||||
|
||||
CLS
|
||||
ECHO === FILTSTN: Novell FILER Manual Baseline ===
|
||||
ECHO.
|
||||
ECHO Dieses Script bereitet F:\TFILE vor und startet danach NPUBLIC\FILER.
|
||||
ECHO.
|
||||
ECHO In FILER dann manuell:
|
||||
ECHO 1. Zu F:\TFILE wechseln
|
||||
ECHO 2. File/Directory Information fuer A.TXT, B.TXT, SUBDIR ansehen
|
||||
ECHO 3. Attribute/Informationen aendern, wenn moeglich
|
||||
ECHO 4. FILER verlassen
|
||||
ECHO 5. Danach Readback-Sektionen im Script weiterlaufen lassen
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === F00: Testordner vorbereiten ===
|
||||
F:
|
||||
CD \
|
||||
|
||||
REM --- Clean generated test/result directories (contents only). ---
|
||||
IF EXIST TFILE\NUL DELTREE /Y TFILE\*.*
|
||||
IF NOT EXIST TFILE MD TFILE
|
||||
CD TFILE
|
||||
ECHO FILER TEST A > A.TXT
|
||||
ECHO FILER TEST B > B.TXT
|
||||
ECHO FILER KEEP > KEEP.TXT
|
||||
IF NOT EXIST SUBDIR MD SUBDIR
|
||||
ECHO FILER SUB C > SUBDIR\C.TXT
|
||||
CD \
|
||||
ECHO.
|
||||
ECHO Angelegt/geprueft:
|
||||
ECHO F:\TFILE\A.TXT
|
||||
ECHO F:\TFILE\B.TXT
|
||||
ECHO F:\TFILE\KEEP.TXT
|
||||
ECHO F:\TFILE\SUBDIR\C.TXT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === F01: Attribute normalisieren ===
|
||||
NPUBLIC\FLAG F:\TFILE\A.TXT N
|
||||
NPUBLIC\FLAG F:\TFILE\B.TXT N
|
||||
NPUBLIC\FLAG F:\TFILE\KEEP.TXT N
|
||||
NPUBLIC\FLAG F:\TFILE\SUBDIR\C.TXT N
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === F02: Ausgangszustand FLAG ===
|
||||
NPUBLIC\FLAG F:\TFILE\A.TXT
|
||||
ECHO.
|
||||
NPUBLIC\FLAG F:\TFILE\B.TXT
|
||||
ECHO.
|
||||
NPUBLIC\FLAG F:\TFILE\KEEP.TXT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === F03: Ausgangszustand NDIR ===
|
||||
NPUBLIC\NDIR F:\TFILE
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === F04: Ausgangszustand NDIR /DATES ===
|
||||
NPUBLIC\NDIR F:\TFILE /DATES
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === F05: Ausgangszustand NDIR /RIGHTS ===
|
||||
NPUBLIC\NDIR F:\TFILE /RIGHTS
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === F06: Ausgangszustand RIGHTS ===
|
||||
NPUBLIC\RIGHTS F:\TFILE
|
||||
ECHO.
|
||||
NPUBLIC\RIGHTS F:\TFILE\A.TXT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === F07: Referenz-Attribute vor FILER setzen ===
|
||||
ECHO A.TXT: +H
|
||||
ECHO B.TXT: +RO
|
||||
ECHO KEEP.TXT: +A
|
||||
NPUBLIC\FLAG F:\TFILE\A.TXT +H
|
||||
NPUBLIC\FLAG F:\TFILE\B.TXT +RO
|
||||
NPUBLIC\FLAG F:\TFILE\KEEP.TXT +A
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === F08: Readback nach FLAG vor FILER ===
|
||||
NPUBLIC\FLAG F:\TFILE\A.TXT
|
||||
ECHO.
|
||||
NPUBLIC\FLAG F:\TFILE\B.TXT
|
||||
ECHO.
|
||||
NPUBLIC\FLAG F:\TFILE\KEEP.TXT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === F09: NDIR /DATES nach FLAG vor FILER ===
|
||||
NPUBLIC\NDIR F:\TFILE /DATES
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === F10: Jetzt NPUBLIC\FILER manuell testen ===
|
||||
ECHO.
|
||||
ECHO Hinweise fuer FILER:
|
||||
ECHO - Directory auf F:\TFILE setzen
|
||||
ECHO - A.TXT, B.TXT, KEEP.TXT, SUBDIR ansehen
|
||||
ECHO - File/Directory Information anzeigen
|
||||
ECHO - Wenn moeglich Attribute aendern:
|
||||
ECHO A.TXT Hidden toggeln
|
||||
ECHO B.TXT Read Only toggeln
|
||||
ECHO KEEP.TXT Archive Needed toggeln
|
||||
ECHO - Optional Directory Information von SUBDIR ansehen
|
||||
ECHO - Danach FILER beenden
|
||||
ECHO.
|
||||
PAUSE
|
||||
NPUBLIC\FILER
|
||||
ECHO.
|
||||
ECHO FILER beendet.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === F11: Readback FLAG nach FILER ===
|
||||
NPUBLIC\FLAG F:\TFILE\A.TXT
|
||||
ECHO.
|
||||
NPUBLIC\FLAG F:\TFILE\B.TXT
|
||||
ECHO.
|
||||
NPUBLIC\FLAG F:\TFILE\KEEP.TXT
|
||||
ECHO.
|
||||
NPUBLIC\FLAG F:\TFILE\SUBDIR\C.TXT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === F12: Readback NDIR nach FILER ===
|
||||
NPUBLIC\NDIR F:\TFILE
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === F13: Readback NDIR /DATES nach FILER ===
|
||||
NPUBLIC\NDIR F:\TFILE /DATES
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === F14: Readback NDIR /RIGHTS nach FILER ===
|
||||
NPUBLIC\NDIR F:\TFILE /RIGHTS
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === F15: Readback RIGHTS nach FILER ===
|
||||
NPUBLIC\RIGHTS F:\TFILE
|
||||
ECHO.
|
||||
NPUBLIC\RIGHTS F:\TFILE\A.TXT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === F16: Cleanup Attribute ===
|
||||
NPUBLIC\FLAG F:\TFILE\A.TXT N
|
||||
NPUBLIC\FLAG F:\TFILE\B.TXT N
|
||||
NPUBLIC\FLAG F:\TFILE\KEEP.TXT N
|
||||
NPUBLIC\FLAG F:\TFILE\SUBDIR\C.TXT N
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === F17: Final NDIR ===
|
||||
NPUBLIC\NDIR F:\TFILE
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === FILTSTN fertig ===
|
||||
ECHO.
|
||||
ECHO Im Serverlog pruefen:
|
||||
ECHO FILER Info-Readback
|
||||
ECHO NCP22/25 change bits bei Aenderungen
|
||||
ECHO NCP22/25 Set Directory/File Information
|
||||
ECHO xattr-Metadaten falls FILER passende Felder setzt
|
||||
ECHO keine unerwarteten Completion Codes
|
||||
ECHO.
|
||||
172
test/filer/README.md
Normal file
172
test/filer/README.md
Normal file
@@ -0,0 +1,172 @@
|
||||
# FILER tests
|
||||
|
||||
Manual Novell FILER baseline with pre/post output comparison.
|
||||
|
||||
## Files
|
||||
|
||||
| File | Purpose |
|
||||
| --- | --- |
|
||||
| `FILPREN.BAT` | Pre-FILER setup and baseline output capture. |
|
||||
| `FILPOSTN.BAT` | Post-FILER output capture, compare, and cleanup. |
|
||||
| `FILCMPN.BAT` | Repeat PRE/POST comparisons only. |
|
||||
| `FILTSTM.TST` | MARS/dosutils regression notes/spec for the scenario. |
|
||||
|
||||
## Test flow
|
||||
|
||||
```text
|
||||
FILPREN.BAT
|
||||
NPUBLIC\FILER
|
||||
FILPOSTN.BAT
|
||||
```
|
||||
|
||||
Optional repeat compare:
|
||||
|
||||
```text
|
||||
FILCMPN.BAT
|
||||
```
|
||||
|
||||
## Output comparison
|
||||
|
||||
`FILPREN.BAT` writes baseline files to:
|
||||
|
||||
```text
|
||||
F:\TFILE\PRE\*.OUT
|
||||
```
|
||||
|
||||
`FILPOSTN.BAT` writes post-FILER files to:
|
||||
|
||||
```text
|
||||
F:\TFILE\POST\*.OUT
|
||||
```
|
||||
|
||||
Then `FC` compares:
|
||||
|
||||
```text
|
||||
FLAGA.OUT
|
||||
FLAGB.OUT
|
||||
FLAGK.OUT
|
||||
NDIR.OUT
|
||||
DATES.OUT
|
||||
RIGHTS.OUT
|
||||
TRUST.OUT
|
||||
TRUSTA.OUT
|
||||
```
|
||||
|
||||
No differences are expected if FILER was only used for inspection.
|
||||
Intentional differences are expected if attributes or metadata were changed in FILER.
|
||||
|
||||
|
||||
|
||||
## Manual changes to perform in FILER
|
||||
|
||||
The FILER screen starts at `MARS\SYS:NPUBLIC`. Use the menu to navigate and make a small, controlled change set.
|
||||
|
||||
### 1. Go to the test directory
|
||||
|
||||
Use:
|
||||
|
||||
```text
|
||||
Select Current Directory
|
||||
```
|
||||
|
||||
Change to:
|
||||
|
||||
```text
|
||||
F:\TFILE
|
||||
```
|
||||
|
||||
or the equivalent NetWare path:
|
||||
|
||||
```text
|
||||
MARS\SYS:TFILE
|
||||
```
|
||||
|
||||
Then use:
|
||||
|
||||
```text
|
||||
Directory Contents
|
||||
```
|
||||
|
||||
You should see:
|
||||
|
||||
```text
|
||||
A.TXT
|
||||
B.TXT
|
||||
KEEP.TXT
|
||||
SUBDIR
|
||||
```
|
||||
|
||||
### 2. Inspect file and directory information
|
||||
|
||||
Open/inspect the information screen for:
|
||||
|
||||
```text
|
||||
A.TXT
|
||||
B.TXT
|
||||
KEEP.TXT
|
||||
SUBDIR
|
||||
SUBDIR\C.TXT
|
||||
```
|
||||
|
||||
Just opening these screens should exercise the server info-readback paths without changing anything.
|
||||
|
||||
### 3. Make one or more intentional attribute changes
|
||||
|
||||
Use FILER to change only a few obvious attributes, so the `PRE` versus `POST` compare is easy to understand.
|
||||
|
||||
Suggested changes:
|
||||
|
||||
```text
|
||||
A.TXT Hidden: toggle
|
||||
B.TXT Read Only: toggle
|
||||
KEEP.TXT Archive Needed: toggle
|
||||
```
|
||||
|
||||
If FILER allows editing directory attributes, also inspect `SUBDIR`, but keep directory changes minimal.
|
||||
|
||||
### 4. Optional no-change pass
|
||||
|
||||
For a pure readback test, do not change anything in FILER. Then `FILPOSTN.BAT` should show no `FC` differences except harmless output/date formatting differences.
|
||||
|
||||
### 5. Expected compare results
|
||||
|
||||
After leaving FILER, run:
|
||||
|
||||
```text
|
||||
FILPOSTN.BAT
|
||||
```
|
||||
|
||||
Expected results:
|
||||
|
||||
```text
|
||||
No FILER changes:
|
||||
FC should report no differences for the PRE/POST files.
|
||||
|
||||
Changed A.TXT Hidden:
|
||||
FLAGA.OUT, NDIR.OUT, DATES.OUT may differ.
|
||||
|
||||
Changed B.TXT Read Only:
|
||||
FLAGB.OUT, NDIR.OUT, DATES.OUT may differ.
|
||||
|
||||
Changed KEEP.TXT Archive Needed:
|
||||
FLAGK.OUT, NDIR.OUT, DATES.OUT may differ.
|
||||
|
||||
Changed rights/trustees:
|
||||
RIGHTS.OUT and/or TRUST*.OUT may differ.
|
||||
```
|
||||
|
||||
The important part is that the differences match the intentional FILER changes and the server log shows no unexpected completion codes.
|
||||
|
||||
## Server log focus
|
||||
|
||||
Look for:
|
||||
|
||||
```text
|
||||
NCP22/25
|
||||
Set Directory/File Information
|
||||
change bits
|
||||
nwp_stat
|
||||
nw_optain_file_dir_info
|
||||
nw_search_file_dir
|
||||
build_d_i
|
||||
```
|
||||
168
test/flag/FLGTSTA.BAT
Normal file
168
test/flag/FLGTSTA.BAT
Normal file
@@ -0,0 +1,168 @@
|
||||
@ECHO OFF
|
||||
REM FLGTSTA.BAT
|
||||
REM Automated Novell FLAG baseline for MARS NWE.
|
||||
REM
|
||||
REM Run while already logged in and with F: mapped to SYS.
|
||||
REM
|
||||
REM Test tree:
|
||||
REM F:\FLGTEST
|
||||
REM Result tree:
|
||||
REM F:\FLGCMP
|
||||
REM
|
||||
REM Scope:
|
||||
REM FLAG on files only.
|
||||
|
||||
F:
|
||||
CD \
|
||||
|
||||
REM --- Clean generated test/result directories (contents only). ---
|
||||
IF EXIST FLGTEST\NUL DELTREE /Y FLGTEST\*.*
|
||||
IF EXIST FLGCMP\NUL DELTREE /Y FLGCMP\*.*
|
||||
|
||||
IF NOT EXIST FLGTEST\NUL MD FLGTEST
|
||||
IF NOT EXIST FLGCMP\NUL MD FLGCMP
|
||||
IF NOT EXIST FLGCMP\OUT\NUL MD FLGCMP\OUT
|
||||
|
||||
IF EXIST F:\FLGCMP\RUN.LOG DEL F:\FLGCMP\RUN.LOG
|
||||
IF EXIST F:\FLGCMP\SUMMARY.TXT DEL F:\FLGCMP\SUMMARY.TXT
|
||||
IF EXIST F:\FLGCMP\FLGTSTA.ZIP DEL F:\FLGCMP\FLGTSTA.ZIP
|
||||
IF EXIST F:\FLGCMP\ZIP.LOG DEL F:\FLGCMP\ZIP.LOG
|
||||
|
||||
IF EXIST F:\FLGCMP\OUT\F01_BASE.OUT DEL F:\FLGCMP\OUT\F01_BASE.OUT
|
||||
IF EXIST F:\FLGCMP\OUT\F02_FLAGN.OUT DEL F:\FLGCMP\OUT\F02_FLAGN.OUT
|
||||
IF EXIST F:\FLGCMP\OUT\F03_SET1.OUT DEL F:\FLGCMP\OUT\F03_SET1.OUT
|
||||
IF EXIST F:\FLGCMP\OUT\F04_NDIR1.OUT DEL F:\FLGCMP\OUT\F04_NDIR1.OUT
|
||||
IF EXIST F:\FLGCMP\OUT\F05_FILTER.OUT DEL F:\FLGCMP\OUT\F05_FILTER.OUT
|
||||
IF EXIST F:\FLGCMP\OUT\F06_CLEAR.OUT DEL F:\FLGCMP\OUT\F06_CLEAR.OUT
|
||||
IF EXIST F:\FLGCMP\OUT\F07_COMBO.OUT DEL F:\FLGCMP\OUT\F07_COMBO.OUT
|
||||
IF EXIST F:\FLGCMP\OUT\F08_COPYREN.OUT DEL F:\FLGCMP\OUT\F08_COPYREN.OUT
|
||||
IF EXIST F:\FLGCMP\OUT\F09_FINAL.OUT DEL F:\FLGCMP\OUT\F09_FINAL.OUT
|
||||
|
||||
REM Clean test files.
|
||||
IF EXIST F:\FLGTEST\ALPHA.TXT DEL F:\FLGTEST\ALPHA.TXT
|
||||
IF EXIST F:\FLGTEST\BETA.TXT DEL F:\FLGTEST\BETA.TXT
|
||||
IF EXIST F:\FLGTEST\GAMMA.DAT DEL F:\FLGTEST\GAMMA.DAT
|
||||
IF EXIST F:\FLGTEST\DELTA.BIN DEL F:\FLGTEST\DELTA.BIN
|
||||
IF EXIST F:\FLGTEST\EPS.TXT DEL F:\FLGTEST\EPS.TXT
|
||||
IF EXIST F:\FLGTEST\RENAMED.TXT DEL F:\FLGTEST\RENAMED.TXT
|
||||
IF EXIST F:\FLGTEST\COPY.TXT DEL F:\FLGTEST\COPY.TXT
|
||||
|
||||
ECHO FLGTSTA FLAG baseline > F:\FLGCMP\RUN.LOG
|
||||
ECHO Run while already logged in. >> F:\FLGCMP\RUN.LOG
|
||||
ECHO Date/time stamp skipped to avoid DOS prompt. >> F:\FLGCMP\RUN.LOG
|
||||
ECHO. >> F:\FLGCMP\RUN.LOG
|
||||
|
||||
ECHO ALPHA FILE > F:\FLGTEST\ALPHA.TXT
|
||||
ECHO BETA FILE > F:\FLGTEST\BETA.TXT
|
||||
ECHO GAMMA FILE > F:\FLGTEST\GAMMA.DAT
|
||||
ECHO DELTA FILE > F:\FLGTEST\DELTA.BIN
|
||||
ECHO EPS FILE > F:\FLGTEST\EPS.TXT
|
||||
|
||||
ECHO === F01 base FLAG/NDIR readback === >> F:\FLGCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\FLGTEST\ALPHA.TXT N >> F:\FLGCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\FLGTEST\BETA.TXT N >> F:\FLGCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\FLGTEST\GAMMA.DAT N >> F:\FLGCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\FLGTEST\DELTA.BIN N >> F:\FLGCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\FLGTEST\EPS.TXT N >> F:\FLGCMP\RUN.LOG
|
||||
NPUBLIC\NDIR F:\FLGTEST > F:\FLGCMP\OUT\F01_BASE.OUT
|
||||
NPUBLIC\FLAG F:\FLGTEST\ALPHA.TXT >> F:\FLGCMP\OUT\F01_BASE.OUT
|
||||
NPUBLIC\FLAG F:\FLGTEST\BETA.TXT >> F:\FLGCMP\OUT\F01_BASE.OUT
|
||||
NPUBLIC\FLAG F:\FLGTEST\GAMMA.DAT >> F:\FLGCMP\OUT\F01_BASE.OUT
|
||||
NPUBLIC\FLAG F:\FLGTEST\DELTA.BIN >> F:\FLGCMP\OUT\F01_BASE.OUT
|
||||
NPUBLIC\FLAG F:\FLGTEST\EPS.TXT >> F:\FLGCMP\OUT\F01_BASE.OUT
|
||||
|
||||
ECHO === F02 explicit FLAG N cleanup === >> F:\FLGCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\FLGTEST\ALPHA.TXT N > F:\FLGCMP\OUT\F02_FLAGN.OUT
|
||||
NPUBLIC\FLAG F:\FLGTEST\BETA.TXT N >> F:\FLGCMP\OUT\F02_FLAGN.OUT
|
||||
NPUBLIC\FLAG F:\FLGTEST\GAMMA.DAT N >> F:\FLGCMP\OUT\F02_FLAGN.OUT
|
||||
NPUBLIC\FLAG F:\FLGTEST\DELTA.BIN N >> F:\FLGCMP\OUT\F02_FLAGN.OUT
|
||||
NPUBLIC\FLAG F:\FLGTEST\EPS.TXT N >> F:\FLGCMP\OUT\F02_FLAGN.OUT
|
||||
|
||||
ECHO === F03 set individual flags === >> F:\FLGCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\FLGTEST\ALPHA.TXT +H > F:\FLGCMP\OUT\F03_SET1.OUT
|
||||
NPUBLIC\FLAG F:\FLGTEST\BETA.TXT +RO >> F:\FLGCMP\OUT\F03_SET1.OUT
|
||||
NPUBLIC\FLAG F:\FLGTEST\GAMMA.DAT +A >> F:\FLGCMP\OUT\F03_SET1.OUT
|
||||
NPUBLIC\FLAG F:\FLGTEST\DELTA.BIN +Sy >> F:\FLGCMP\OUT\F03_SET1.OUT
|
||||
NPUBLIC\FLAG F:\FLGTEST\EPS.TXT +DI +RI >> F:\FLGCMP\OUT\F03_SET1.OUT
|
||||
NPUBLIC\FLAG F:\FLGTEST\ALPHA.TXT >> F:\FLGCMP\OUT\F03_SET1.OUT
|
||||
NPUBLIC\FLAG F:\FLGTEST\BETA.TXT >> F:\FLGCMP\OUT\F03_SET1.OUT
|
||||
NPUBLIC\FLAG F:\FLGTEST\GAMMA.DAT >> F:\FLGCMP\OUT\F03_SET1.OUT
|
||||
NPUBLIC\FLAG F:\FLGTEST\DELTA.BIN >> F:\FLGCMP\OUT\F03_SET1.OUT
|
||||
NPUBLIC\FLAG F:\FLGTEST\EPS.TXT >> F:\FLGCMP\OUT\F03_SET1.OUT
|
||||
|
||||
ECHO === F04 NDIR after flags === >> F:\FLGCMP\RUN.LOG
|
||||
NPUBLIC\NDIR F:\FLGTEST > F:\FLGCMP\OUT\F04_NDIR1.OUT
|
||||
NPUBLIC\NDIR F:\FLGTEST /DATES >> F:\FLGCMP\OUT\F04_NDIR1.OUT
|
||||
NPUBLIC\NDIR F:\FLGTEST /RIGHTS >> F:\FLGCMP\OUT\F04_NDIR1.OUT
|
||||
|
||||
ECHO === F05 NDIR filters for flags === >> F:\FLGCMP\RUN.LOG
|
||||
ECHO --- /H --- > F:\FLGCMP\OUT\F05_FILTER.OUT
|
||||
NPUBLIC\NDIR F:\FLGTEST /H >> F:\FLGCMP\OUT\F05_FILTER.OUT
|
||||
ECHO --- /RO --- >> F:\FLGCMP\OUT\F05_FILTER.OUT
|
||||
NPUBLIC\NDIR F:\FLGTEST /RO >> F:\FLGCMP\OUT\F05_FILTER.OUT
|
||||
ECHO --- /A --- >> F:\FLGCMP\OUT\F05_FILTER.OUT
|
||||
NPUBLIC\NDIR F:\FLGTEST /A >> F:\FLGCMP\OUT\F05_FILTER.OUT
|
||||
ECHO --- /SY --- >> F:\FLGCMP\OUT\F05_FILTER.OUT
|
||||
NPUBLIC\NDIR F:\FLGTEST /SY >> F:\FLGCMP\OUT\F05_FILTER.OUT
|
||||
ECHO --- /NOT H --- >> F:\FLGCMP\OUT\F05_FILTER.OUT
|
||||
NPUBLIC\NDIR F:\FLGTEST /NOT H >> F:\FLGCMP\OUT\F05_FILTER.OUT
|
||||
ECHO --- /NOT RO --- >> F:\FLGCMP\OUT\F05_FILTER.OUT
|
||||
NPUBLIC\NDIR F:\FLGTEST /NOT RO >> F:\FLGCMP\OUT\F05_FILTER.OUT
|
||||
|
||||
ECHO === F06 clear individual flags === >> F:\FLGCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\FLGTEST\ALPHA.TXT -H > F:\FLGCMP\OUT\F06_CLEAR.OUT
|
||||
NPUBLIC\FLAG F:\FLGTEST\BETA.TXT -RO >> F:\FLGCMP\OUT\F06_CLEAR.OUT
|
||||
NPUBLIC\FLAG F:\FLGTEST\GAMMA.DAT -A >> F:\FLGCMP\OUT\F06_CLEAR.OUT
|
||||
NPUBLIC\FLAG F:\FLGTEST\DELTA.BIN -Sy >> F:\FLGCMP\OUT\F06_CLEAR.OUT
|
||||
NPUBLIC\FLAG F:\FLGTEST\EPS.TXT -DI -RI >> F:\FLGCMP\OUT\F06_CLEAR.OUT
|
||||
NPUBLIC\FLAG F:\FLGTEST\ALPHA.TXT >> F:\FLGCMP\OUT\F06_CLEAR.OUT
|
||||
NPUBLIC\FLAG F:\FLGTEST\BETA.TXT >> F:\FLGCMP\OUT\F06_CLEAR.OUT
|
||||
NPUBLIC\FLAG F:\FLGTEST\GAMMA.DAT >> F:\FLGCMP\OUT\F06_CLEAR.OUT
|
||||
NPUBLIC\FLAG F:\FLGTEST\DELTA.BIN >> F:\FLGCMP\OUT\F06_CLEAR.OUT
|
||||
NPUBLIC\FLAG F:\FLGTEST\EPS.TXT >> F:\FLGCMP\OUT\F06_CLEAR.OUT
|
||||
|
||||
ECHO === F07 combined flags and FLAG N reset === >> F:\FLGCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\FLGTEST\ALPHA.TXT +H +A +Sy > F:\FLGCMP\OUT\F07_COMBO.OUT
|
||||
NPUBLIC\FLAG F:\FLGTEST\BETA.TXT +RO +DI +RI >> F:\FLGCMP\OUT\F07_COMBO.OUT
|
||||
NPUBLIC\FLAG F:\FLGTEST\ALPHA.TXT >> F:\FLGCMP\OUT\F07_COMBO.OUT
|
||||
NPUBLIC\FLAG F:\FLGTEST\BETA.TXT >> F:\FLGCMP\OUT\F07_COMBO.OUT
|
||||
NPUBLIC\NDIR F:\FLGTEST >> F:\FLGCMP\OUT\F07_COMBO.OUT
|
||||
NPUBLIC\FLAG F:\FLGTEST\ALPHA.TXT N >> F:\FLGCMP\OUT\F07_COMBO.OUT
|
||||
NPUBLIC\FLAG F:\FLGTEST\BETA.TXT N >> F:\FLGCMP\OUT\F07_COMBO.OUT
|
||||
NPUBLIC\FLAG F:\FLGTEST\ALPHA.TXT >> F:\FLGCMP\OUT\F07_COMBO.OUT
|
||||
NPUBLIC\FLAG F:\FLGTEST\BETA.TXT >> F:\FLGCMP\OUT\F07_COMBO.OUT
|
||||
|
||||
ECHO === F08 copy/rename smoke === >> F:\FLGCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\FLGTEST\EPS.TXT N >> F:\FLGCMP\RUN.LOG
|
||||
COPY F:\FLGTEST\EPS.TXT F:\FLGTEST\COPY.TXT > F:\FLGCMP\OUT\F08_COPYREN.OUT
|
||||
REN F:\FLGTEST\COPY.TXT RENAMED.TXT >> F:\FLGCMP\OUT\F08_COPYREN.OUT
|
||||
IF EXIST F:\FLGTEST\RENAMED.TXT ECHO OK RENAMED.TXT exists >> F:\FLGCMP\OUT\F08_COPYREN.OUT
|
||||
IF NOT EXIST F:\FLGTEST\RENAMED.TXT ECHO FAIL RENAMED.TXT missing >> F:\FLGCMP\OUT\F08_COPYREN.OUT
|
||||
NPUBLIC\FLAG F:\FLGTEST\RENAMED.TXT >> F:\FLGCMP\OUT\F08_COPYREN.OUT
|
||||
NPUBLIC\NDIR F:\FLGTEST >> F:\FLGCMP\OUT\F08_COPYREN.OUT
|
||||
|
||||
ECHO === F09 final file cleanup/readback === >> F:\FLGCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\FLGTEST\ALPHA.TXT N >> F:\FLGCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\FLGTEST\BETA.TXT N >> F:\FLGCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\FLGTEST\GAMMA.DAT N >> F:\FLGCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\FLGTEST\DELTA.BIN N >> F:\FLGCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\FLGTEST\EPS.TXT N >> F:\FLGCMP\RUN.LOG
|
||||
IF EXIST F:\FLGTEST\RENAMED.TXT NPUBLIC\FLAG F:\FLGTEST\RENAMED.TXT N >> F:\FLGCMP\RUN.LOG
|
||||
NPUBLIC\NDIR F:\FLGTEST > F:\FLGCMP\OUT\F09_FINAL.OUT
|
||||
|
||||
ECHO === SUMMARY === > F:\FLGCMP\SUMMARY.TXT
|
||||
ECHO FLGTSTA FLAG baseline finished. >> F:\FLGCMP\SUMMARY.TXT
|
||||
ECHO. >> F:\FLGCMP\SUMMARY.TXT
|
||||
ECHO Expected: >> F:\FLGCMP\SUMMARY.TXT
|
||||
ECHO - F03 shows H on ALPHA, RO on BETA, A on GAMMA, Sy on DELTA. >> F:\FLGCMP\SUMMARY.TXT
|
||||
ECHO - F05 filters isolate H, RO, A, Sy and NOT variants. >> F:\FLGCMP\SUMMARY.TXT
|
||||
ECHO - F06 clears the individual flags. >> F:\FLGCMP\SUMMARY.TXT
|
||||
ECHO - F07 combined flags set and reset with N. >> F:\FLGCMP\SUMMARY.TXT
|
||||
ECHO - F09 final readback shows normal usable files. >> F:\FLGCMP\SUMMARY.TXT
|
||||
ECHO Optional pack results with FLGTZIP.BAT. >> F:\FLGCMP\SUMMARY.TXT
|
||||
|
||||
ECHO.
|
||||
ECHO FLGTSTA fertig.
|
||||
ECHO Ergebnisse liegen in F:\FLGCMP
|
||||
ECHO Optional: FLGTZIP ausfuehren.
|
||||
ECHO.
|
||||
26
test/flag/FLGTZIP.BAT
Normal file
26
test/flag/FLGTZIP.BAT
Normal file
@@ -0,0 +1,26 @@
|
||||
@ECHO OFF
|
||||
REM FLGTZIP.BAT
|
||||
REM Optional packer for FLGTSTA result files.
|
||||
REM Requires ZIP.EXE in PATH or current directory.
|
||||
|
||||
F:
|
||||
CD \FLGCMP
|
||||
|
||||
IF EXIST FLGTSTA.ZIP DEL FLGTSTA.ZIP
|
||||
IF EXIST ZIP.LOG DEL ZIP.LOG
|
||||
|
||||
ECHO Creating FLGTSTA.ZIP > ZIP.LOG
|
||||
ZIP -r FLGTSTA.ZIP RUN.LOG SUMMARY.TXT 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 \FLGTEST\NUL DELTREE /Y \FLGTEST >> ZIP.LOG
|
||||
CD \
|
||||
ECHO.
|
||||
ECHO ZIP step finished.
|
||||
ECHO Check:
|
||||
ECHO F:\FLGCMP\FLGTSTA.ZIP
|
||||
ECHO F:\FLGCMP\ZIP.LOG
|
||||
ECHO.
|
||||
35
test/flag/README.md
Normal file
35
test/flag/README.md
Normal file
@@ -0,0 +1,35 @@
|
||||
# FLAG automated test
|
||||
|
||||
Novell FLAG baseline using `NPUBLIC\FLAG`.
|
||||
|
||||
## Run
|
||||
|
||||
Run while already logged in and with `F:` mapped to `SYS`.
|
||||
|
||||
```text
|
||||
FLGTSTA
|
||||
FLGTZIP
|
||||
```
|
||||
|
||||
Result:
|
||||
|
||||
```text
|
||||
F:\FLGCMP\FLGTSTA.ZIP
|
||||
```
|
||||
|
||||
Linux package with server log:
|
||||
|
||||
```sh
|
||||
sudo ./mars_packtest_v3.sh flgtsta 5 mario
|
||||
```
|
||||
|
||||
## Coverage
|
||||
|
||||
- file flag display
|
||||
- `FLAG ... N`
|
||||
- set/clear `H`, `RO`, `A`, `Sy`, `DI`, `RI`
|
||||
- combined flags
|
||||
- NDIR readback
|
||||
- NDIR filters `/H`, `/RO`, `/A`, `/SY`, `/NOT H`, `/NOT RO`
|
||||
- copy/rename smoke check
|
||||
- final cleanup
|
||||
122
test/flagdir/FDGTSTA.BAT
Normal file
122
test/flagdir/FDGTSTA.BAT
Normal file
@@ -0,0 +1,122 @@
|
||||
@ECHO OFF
|
||||
REM FDGTSTA.BAT
|
||||
REM Automated Novell FLAGDIR baseline for MARS NWE.
|
||||
REM
|
||||
REM Run while already logged in and with F: mapped to SYS.
|
||||
REM
|
||||
REM Test tree:
|
||||
REM F:\FDGTEST
|
||||
REM Result tree:
|
||||
REM F:\FDGCMP
|
||||
REM
|
||||
REM Scope:
|
||||
REM FLAGDIR on directories only.
|
||||
REM
|
||||
REM FLAGDIR uses long option names:
|
||||
REM Normal
|
||||
REM System
|
||||
REM Hidden
|
||||
REM Deleteinhibit
|
||||
REM Purge
|
||||
REM Renameinhibit
|
||||
|
||||
F:
|
||||
CD \
|
||||
|
||||
REM --- Clean generated test/result directories (contents only). ---
|
||||
IF EXIST FDGTEST\NUL DELTREE /Y FDGTEST\*.*
|
||||
IF EXIST FDGCMP\NUL DELTREE /Y FDGCMP\*.*
|
||||
|
||||
IF NOT EXIST FDGTEST\NUL MD FDGTEST
|
||||
IF NOT EXIST FDGTEST\DIRA\NUL MD FDGTEST\DIRA
|
||||
IF NOT EXIST FDGTEST\DIRB\NUL MD FDGTEST\DIRB
|
||||
IF NOT EXIST FDGTEST\DIRC\NUL MD FDGTEST\DIRC
|
||||
IF NOT EXIST FDGTEST\DIRB\SUB\NUL MD FDGTEST\DIRB\SUB
|
||||
IF NOT EXIST FDGCMP\NUL MD FDGCMP
|
||||
IF NOT EXIST FDGCMP\OUT\NUL MD FDGCMP\OUT
|
||||
|
||||
IF EXIST F:\FDGCMP\RUN.LOG DEL F:\FDGCMP\RUN.LOG
|
||||
IF EXIST F:\FDGCMP\SUMMARY.TXT DEL F:\FDGCMP\SUMMARY.TXT
|
||||
IF EXIST F:\FDGCMP\FDGTSTA.ZIP DEL F:\FDGCMP\FDGTSTA.ZIP
|
||||
IF EXIST F:\FDGCMP\ZIP.LOG DEL F:\FDGCMP\ZIP.LOG
|
||||
|
||||
IF EXIST F:\FDGCMP\OUT\D01_BASE.OUT DEL F:\FDGCMP\OUT\D01_BASE.OUT
|
||||
IF EXIST F:\FDGCMP\OUT\D02_SET.OUT DEL F:\FDGCMP\OUT\D02_SET.OUT
|
||||
IF EXIST F:\FDGCMP\OUT\D03_NDIR.OUT DEL F:\FDGCMP\OUT\D03_NDIR.OUT
|
||||
IF EXIST F:\FDGCMP\OUT\D04_FILTER.OUT DEL F:\FDGCMP\OUT\D04_FILTER.OUT
|
||||
IF EXIST F:\FDGCMP\OUT\D05_NORMAL.OUT DEL F:\FDGCMP\OUT\D05_NORMAL.OUT
|
||||
IF EXIST F:\FDGCMP\OUT\D06_FINAL.OUT DEL F:\FDGCMP\OUT\D06_FINAL.OUT
|
||||
|
||||
IF EXIST F:\FDGTEST\DIRB\SUB\SUB.TXT DEL F:\FDGTEST\DIRB\SUB\SUB.TXT
|
||||
ECHO SUB FILE > F:\FDGTEST\DIRB\SUB\SUB.TXT
|
||||
|
||||
ECHO FDGTSTA FLAGDIR baseline > F:\FDGCMP\RUN.LOG
|
||||
ECHO Run while already logged in. >> F:\FDGCMP\RUN.LOG
|
||||
ECHO Date/time stamp skipped to avoid DOS prompt. >> F:\FDGCMP\RUN.LOG
|
||||
ECHO. >> F:\FDGCMP\RUN.LOG
|
||||
|
||||
ECHO === D01 FLAGDIR base / reset to Normal === >> F:\FDGCMP\RUN.LOG
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRA Normal >> F:\FDGCMP\RUN.LOG
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRB Normal >> F:\FDGCMP\RUN.LOG
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRC Normal >> F:\FDGCMP\RUN.LOG
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRB\SUB Normal >> F:\FDGCMP\RUN.LOG
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRA > F:\FDGCMP\OUT\D01_BASE.OUT
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRB >> F:\FDGCMP\OUT\D01_BASE.OUT
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRC >> F:\FDGCMP\OUT\D01_BASE.OUT
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRB\SUB >> F:\FDGCMP\OUT\D01_BASE.OUT
|
||||
|
||||
ECHO === D02 FLAGDIR set directory flags === >> F:\FDGCMP\RUN.LOG
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRA Hidden > F:\FDGCMP\OUT\D02_SET.OUT
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRB System >> F:\FDGCMP\OUT\D02_SET.OUT
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRC Purge >> F:\FDGCMP\OUT\D02_SET.OUT
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRB\SUB Deleteinhibit Renameinhibit >> F:\FDGCMP\OUT\D02_SET.OUT
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRA >> F:\FDGCMP\OUT\D02_SET.OUT
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRB >> F:\FDGCMP\OUT\D02_SET.OUT
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRC >> F:\FDGCMP\OUT\D02_SET.OUT
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRB\SUB >> F:\FDGCMP\OUT\D02_SET.OUT
|
||||
|
||||
ECHO === D03 NDIR directory readback === >> F:\FDGCMP\RUN.LOG
|
||||
NPUBLIC\NDIR F:\FDGTEST > F:\FDGCMP\OUT\D03_NDIR.OUT
|
||||
NPUBLIC\NDIR F:\FDGTEST /DO >> F:\FDGCMP\OUT\D03_NDIR.OUT
|
||||
NPUBLIC\NDIR F:\FDGTEST /RIGHTS >> F:\FDGCMP\OUT\D03_NDIR.OUT
|
||||
|
||||
ECHO === D04 NDIR filters for directory flags === >> F:\FDGCMP\RUN.LOG
|
||||
ECHO --- /H --- > F:\FDGCMP\OUT\D04_FILTER.OUT
|
||||
NPUBLIC\NDIR F:\FDGTEST /H >> F:\FDGCMP\OUT\D04_FILTER.OUT
|
||||
ECHO --- /SY --- >> F:\FDGCMP\OUT\D04_FILTER.OUT
|
||||
NPUBLIC\NDIR F:\FDGTEST /SY >> F:\FDGCMP\OUT\D04_FILTER.OUT
|
||||
ECHO --- /NOT H --- >> F:\FDGCMP\OUT\D04_FILTER.OUT
|
||||
NPUBLIC\NDIR F:\FDGTEST /NOT H >> F:\FDGCMP\OUT\D04_FILTER.OUT
|
||||
|
||||
ECHO === D05 FLAGDIR Normal reset === >> F:\FDGCMP\RUN.LOG
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRA Normal > F:\FDGCMP\OUT\D05_NORMAL.OUT
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRB Normal >> F:\FDGCMP\OUT\D05_NORMAL.OUT
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRC Normal >> F:\FDGCMP\OUT\D05_NORMAL.OUT
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRB\SUB Normal >> F:\FDGCMP\OUT\D05_NORMAL.OUT
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRA >> F:\FDGCMP\OUT\D05_NORMAL.OUT
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRB >> F:\FDGCMP\OUT\D05_NORMAL.OUT
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRC >> F:\FDGCMP\OUT\D05_NORMAL.OUT
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRB\SUB >> F:\FDGCMP\OUT\D05_NORMAL.OUT
|
||||
|
||||
ECHO === D06 final NDIR readback === >> F:\FDGCMP\RUN.LOG
|
||||
NPUBLIC\NDIR F:\FDGTEST > F:\FDGCMP\OUT\D06_FINAL.OUT
|
||||
NPUBLIC\NDIR F:\FDGTEST /DO >> F:\FDGCMP\OUT\D06_FINAL.OUT
|
||||
NPUBLIC\NDIR F:\FDGTEST /RIGHTS >> F:\FDGCMP\OUT\D06_FINAL.OUT
|
||||
|
||||
ECHO === SUMMARY === > F:\FDGCMP\SUMMARY.TXT
|
||||
ECHO FDGTSTA FLAGDIR baseline finished. >> F:\FDGCMP\SUMMARY.TXT
|
||||
ECHO. >> F:\FDGCMP\SUMMARY.TXT
|
||||
ECHO Expected: >> F:\FDGCMP\SUMMARY.TXT
|
||||
ECHO - D01 displays base directory flags after Normal reset. >> F:\FDGCMP\SUMMARY.TXT
|
||||
ECHO - D02 sets Hidden, System, Purge, Deleteinhibit, Renameinhibit. >> F:\FDGCMP\SUMMARY.TXT
|
||||
ECHO - D03 shows NDIR directory readback. >> F:\FDGCMP\SUMMARY.TXT
|
||||
ECHO - D04 checks NDIR filters for visible directory flags. >> F:\FDGCMP\SUMMARY.TXT
|
||||
ECHO - D05 resets all directory flags to Normal. >> F:\FDGCMP\SUMMARY.TXT
|
||||
ECHO - D06 final readback should show normal directories. >> F:\FDGCMP\SUMMARY.TXT
|
||||
ECHO Optional pack results with FDGTZIP.BAT. >> F:\FDGCMP\SUMMARY.TXT
|
||||
|
||||
ECHO.
|
||||
ECHO FDGTSTA fertig.
|
||||
ECHO Ergebnisse liegen in F:\FDGCMP
|
||||
ECHO Optional: FDGTZIP ausfuehren.
|
||||
ECHO.
|
||||
26
test/flagdir/FDGTZIP.BAT
Normal file
26
test/flagdir/FDGTZIP.BAT
Normal file
@@ -0,0 +1,26 @@
|
||||
@ECHO OFF
|
||||
REM FDGTZIP.BAT
|
||||
REM Optional packer for FDGTSTA result files.
|
||||
REM Requires ZIP.EXE in PATH or current directory.
|
||||
|
||||
F:
|
||||
CD \FDGCMP
|
||||
|
||||
IF EXIST FDGTSTA.ZIP DEL FDGTSTA.ZIP
|
||||
IF EXIST ZIP.LOG DEL ZIP.LOG
|
||||
|
||||
ECHO Creating FDGTSTA.ZIP > ZIP.LOG
|
||||
ZIP -r FDGTSTA.ZIP RUN.LOG SUMMARY.TXT 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 \FDGTEST\NUL DELTREE /Y \FDGTEST >> ZIP.LOG
|
||||
CD \
|
||||
ECHO.
|
||||
ECHO ZIP step finished.
|
||||
ECHO Check:
|
||||
ECHO F:\FDGCMP\FDGTSTA.ZIP
|
||||
ECHO F:\FDGCMP\ZIP.LOG
|
||||
ECHO.
|
||||
47
test/flagdir/README.md
Normal file
47
test/flagdir/README.md
Normal file
@@ -0,0 +1,47 @@
|
||||
# FLAGDIR automated test
|
||||
|
||||
Novell FLAGDIR baseline using `NPUBLIC\FLAGDIR`.
|
||||
|
||||
`FLAGDIR` uses long option names, not the short FLAG names.
|
||||
|
||||
Supported options shown by the tool:
|
||||
|
||||
```text
|
||||
Normal
|
||||
System
|
||||
Hidden
|
||||
Deleteinhibit
|
||||
Purge
|
||||
Renameinhibit
|
||||
```
|
||||
|
||||
## Run
|
||||
|
||||
Run while already logged in and with `F:` mapped to `SYS`.
|
||||
|
||||
```text
|
||||
FDGTSTA
|
||||
FDGTZIP
|
||||
```
|
||||
|
||||
Result:
|
||||
|
||||
```text
|
||||
F:\FDGCMP\FDGTSTA.ZIP
|
||||
```
|
||||
|
||||
Linux package with server log:
|
||||
|
||||
```sh
|
||||
sudo ./mars_packtest_v3.sh fdgtsta 5 mario
|
||||
```
|
||||
|
||||
## Coverage
|
||||
|
||||
- directory flag display
|
||||
- `Normal` reset
|
||||
- set `Hidden`, `System`, `Purge`
|
||||
- set `Deleteinhibit` and `Renameinhibit`
|
||||
- NDIR directory readback
|
||||
- NDIR filters for visible flags
|
||||
- final reset/readback
|
||||
94
test/grant/GRNTSTA.BAT
Normal file
94
test/grant/GRNTSTA.BAT
Normal file
@@ -0,0 +1,94 @@
|
||||
@ECHO OFF
|
||||
REM GRNTSTA.BAT
|
||||
REM Automated GRANT baseline test for MARS NWE.
|
||||
REM
|
||||
REM Run as SUPERVISOR or a user with Access Control on F:\GRNTEST.
|
||||
REM Uses \NPUBLIC\GRANT as Novell baseline for currently implemented tool behavior.
|
||||
REM
|
||||
REM Result tree:
|
||||
REM F:\GRNTCMP
|
||||
REM Test tree:
|
||||
REM F:\GRNTEST
|
||||
|
||||
F:
|
||||
CD \
|
||||
|
||||
REM --- Clean generated test/result directories (contents only). ---
|
||||
IF EXIST GRNTEST\NUL DELTREE /Y GRNTEST\*.*
|
||||
IF EXIST GRNTCMP\NUL DELTREE /Y GRNTCMP\*.*
|
||||
|
||||
IF NOT EXIST GRNTEST\NUL MD GRNTEST
|
||||
IF NOT EXIST GRNTEST\ONE\NUL MD GRNTEST\ONE
|
||||
IF NOT EXIST GRNTEST\TREE\NUL MD GRNTEST\TREE
|
||||
IF NOT EXIST GRNTEST\TREE\SUB1\NUL MD GRNTEST\TREE\SUB1
|
||||
IF NOT EXIST GRNTEST\TREE\SUB2\NUL MD GRNTEST\TREE\SUB2
|
||||
IF NOT EXIST GRNTCMP\NUL MD GRNTCMP
|
||||
IF NOT EXIST GRNTCMP\OUT\NUL MD GRNTCMP\OUT
|
||||
|
||||
ECHO GRANT ROOT FILE > F:\GRNTEST\ROOT.TXT
|
||||
ECHO GRANT ONE FILE > F:\GRNTEST\ONE\ONE.TXT
|
||||
ECHO GRANT TREE FILE > F:\GRNTEST\TREE\TROOT.TXT
|
||||
ECHO GRANT SUB1 FILE > F:\GRNTEST\TREE\SUB1\SUB1.TXT
|
||||
ECHO GRANT SUB2 FILE > F:\GRNTEST\TREE\SUB2\SUB2.TXT
|
||||
|
||||
ECHO GRNTSTA GRANT baseline test > F:\GRNTCMP\RUN.LOG
|
||||
ECHO Run this as SUPERVISOR or equivalent. >> F:\GRNTCMP\RUN.LOG
|
||||
ECHO Captures \NPUBLIC\GRANT output against user MARIO. >> F:\GRNTCMP\RUN.LOG
|
||||
ECHO. >> F:\GRNTCMP\RUN.LOG
|
||||
|
||||
ECHO === D01 usage/help === >> F:\GRNTCMP\RUN.LOG
|
||||
\NPUBLIC\GRANT /? > F:\GRNTCMP\OUT\D01_HELP.OUT
|
||||
|
||||
ECHO === D02 no arguments === >> F:\GRNTCMP\RUN.LOG
|
||||
\NPUBLIC\GRANT > F:\GRNTCMP\OUT\D02_NOARGS.OUT
|
||||
|
||||
ECHO === D10 grant R F on directory === >> F:\GRNTCMP\RUN.LOG
|
||||
\NPUBLIC\GRANT R F FOR F:\GRNTEST\ONE TO USER MARIO > F:\GRNTCMP\OUT\D10_DIR_RF.OUT
|
||||
|
||||
ECHO === D11 grant R W C E M F A on directory === >> F:\GRNTCMP\RUN.LOG
|
||||
\NPUBLIC\GRANT R W C E M F A FOR F:\GRNTEST\ONE TO USER MARIO > F:\GRNTCMP\OUT\D11_DIR_ALL_LETTERS.OUT
|
||||
|
||||
ECHO === D12 grant ALL alias on root directory === >> F:\GRNTCMP\RUN.LOG
|
||||
\NPUBLIC\GRANT ALL FOR F:\GRNTEST TO USER MARIO > F:\GRNTCMP\OUT\D12_DIR_ALL_ALIAS.OUT
|
||||
|
||||
ECHO === D13 grant N / no rights on directory === >> F:\GRNTCMP\RUN.LOG
|
||||
\NPUBLIC\GRANT N FOR F:\GRNTEST\ONE TO USER MARIO > F:\GRNTCMP\OUT\D13_DIR_N.OUT
|
||||
|
||||
ECHO === D20 grant R F recursively to subdirectories === >> F:\GRNTCMP\RUN.LOG
|
||||
\NPUBLIC\GRANT R F FOR F:\GRNTEST\TREE TO USER MARIO /SUBDIRECTORIES > F:\GRNTCMP\OUT\D20_SUBDIRS_RF.OUT
|
||||
|
||||
ECHO === D21 grant R F on one file using /FILES === >> F:\GRNTCMP\RUN.LOG
|
||||
\NPUBLIC\GRANT R F FOR F:\GRNTEST\ONE\ONE.TXT TO USER MARIO /FILES > F:\GRNTCMP\OUT\D21_FILE_RF.OUT
|
||||
|
||||
ECHO === D30 relative path from F:\GRNTEST === >> F:\GRNTCMP\RUN.LOG
|
||||
CD \GRNTEST
|
||||
\NPUBLIC\GRANT R F FOR ONE TO USER MARIO > F:\GRNTCMP\OUT\D30_REL_DIR_RF.OUT
|
||||
CD \
|
||||
|
||||
ECHO === D90 invalid right === >> F:\GRNTCMP\RUN.LOG
|
||||
\NPUBLIC\GRANT BADRIGHT FOR F:\GRNTEST TO USER MARIO > F:\GRNTCMP\OUT\D90_BAD_RIGHT.OUT
|
||||
|
||||
ECHO === D91 missing user === >> F:\GRNTCMP\RUN.LOG
|
||||
\NPUBLIC\GRANT R F FOR F:\GRNTEST TO USER NO_SUCH_USER > F:\GRNTCMP\OUT\D91_MISSING_USER.OUT
|
||||
|
||||
ECHO === D92 missing path === >> F:\GRNTCMP\RUN.LOG
|
||||
\NPUBLIC\GRANT R F FOR F:\GRNTEST\MISSING TO USER MARIO > F:\GRNTCMP\OUT\D92_MISSING_PATH.OUT
|
||||
|
||||
ECHO === D93 bad grammar / missing TO === >> F:\GRNTCMP\RUN.LOG
|
||||
\NPUBLIC\GRANT R F FOR F:\GRNTEST MARIO > F:\GRNTCMP\OUT\D93_BAD_GRAMMAR.OUT
|
||||
|
||||
ECHO === SUMMARY === > F:\GRNTCMP\SUMMARY.TXT
|
||||
ECHO GRNTSTA GRANT baseline finished. >> F:\GRNTCMP\SUMMARY.TXT
|
||||
ECHO. >> F:\GRNTCMP\SUMMARY.TXT
|
||||
ECHO Expected: >> F:\GRNTCMP\SUMMARY.TXT
|
||||
ECHO - D10-D13 capture directory grant formatting and right aliases. >> F:\GRNTCMP\SUMMARY.TXT
|
||||
ECHO - D20 captures /SUBDIRECTORIES behavior. >> F:\GRNTCMP\SUMMARY.TXT
|
||||
ECHO - D21 captures /FILES behavior for a file path. >> F:\GRNTCMP\SUMMARY.TXT
|
||||
ECHO - D30 captures relative path behavior with absolute \NPUBLIC\GRANT invocation. >> F:\GRNTCMP\SUMMARY.TXT
|
||||
ECHO - D90-D93 capture error/grammar cases. >> F:\GRNTCMP\SUMMARY.TXT
|
||||
ECHO. >> F:\GRNTCMP\SUMMARY.TXT
|
||||
ECHO Optional: GRNTZIP ausfuehren. >> F:\GRNTCMP\SUMMARY.TXT
|
||||
|
||||
ECHO GRNTSTA fertig.
|
||||
ECHO Ergebnisse liegen in F:\GRNTCMP
|
||||
ECHO Optional: GRNTZIP ausfuehren.
|
||||
26
test/grant/GRNTZIP.BAT
Normal file
26
test/grant/GRNTZIP.BAT
Normal file
@@ -0,0 +1,26 @@
|
||||
@ECHO OFF
|
||||
REM GRNTZIP.BAT
|
||||
REM Optional packer for GRNTSTA result files.
|
||||
REM Requires ZIP.EXE in PATH or current directory.
|
||||
|
||||
F:
|
||||
CD \GRNTCMP
|
||||
|
||||
IF EXIST GRNTSTA.ZIP DEL GRNTSTA.ZIP
|
||||
IF EXIST ZIP.LOG DEL ZIP.LOG
|
||||
|
||||
ECHO Creating GRNTSTA.ZIP > ZIP.LOG
|
||||
ZIP -r GRNTSTA.ZIP RUN.LOG SUMMARY.TXT 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 \GRNTEST\NUL DELTREE /Y \GRNTEST >> ZIP.LOG
|
||||
CD \
|
||||
ECHO.
|
||||
ECHO ZIP step finished.
|
||||
ECHO Check:
|
||||
ECHO F:\GRNTCMP\GRNTSTA.ZIP
|
||||
ECHO F:\GRNTCMP\ZIP.LOG
|
||||
ECHO.
|
||||
19
test/grant/README.md
Normal file
19
test/grant/README.md
Normal file
@@ -0,0 +1,19 @@
|
||||
# GRANT baseline test
|
||||
|
||||
Scripts:
|
||||
|
||||
- `GRNTSTA.BAT` creates `F:\GRNTEST`, captures Novell `\NPUBLIC\GRANT` output into `F:\GRNTCMP\OUT`, and uses user `MARIO` as trustee target.
|
||||
- `GRNTZIP.BAT` packages `RUN.LOG`, `SUMMARY.TXT`, and `OUT` as `F:\GRNTCMP\GRNTSTA.ZIP`.
|
||||
|
||||
Run as `SUPERVISOR` or an equivalent user with Access Control rights on `F:\GRNTEST`.
|
||||
|
||||
Covered cases:
|
||||
|
||||
- help and no-argument grammar
|
||||
- directory grants with explicit rights, `ALL`, and `N`
|
||||
- `/SUBDIRECTORIES`
|
||||
- `/FILES` on an explicit file
|
||||
- relative path invocation from inside the test directory while invoking `\NPUBLIC\GRANT` absolutely
|
||||
- invalid right, missing user, missing path, 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.
|
||||
41
test/login/LGNTC.BAT
Normal file
41
test/login/LGNTC.BAT
Normal file
@@ -0,0 +1,41 @@
|
||||
@ECHO OFF
|
||||
REM LGNTC.BAT
|
||||
REM Helper for LGNTSTA.BAT. Output survives LOGOUT/LOGIN on local C:.
|
||||
REM LOGIN/MAP/LOGOUT are copied to C:\LGNTTMP by LGNTSTA.
|
||||
REM
|
||||
REM Important: LOGIN can change the current drive/search path. Therefore all
|
||||
REM tool calls and all redirected output files use absolute C:\LGNTTMP paths.
|
||||
|
||||
C:
|
||||
CD \LGNTTMP
|
||||
|
||||
ECHO LGNTC helper started. > C:\LGNTTMP\HELPER.TXT
|
||||
ECHO This helper intentionally changes login state. >> C:\LGNTTMP\HELPER.TXT
|
||||
ECHO It can be started from any directory after LGNTSTA part 1. >> C:\LGNTTMP\HELPER.TXT
|
||||
ECHO After it finishes, login manually as SUPERVISOR with: >> C:\LGNTTMP\HELPER.TXT
|
||||
ECHO C:\LGNTTMP\LOGIN SUPERVISOR >> C:\LGNTTMP\HELPER.TXT
|
||||
ECHO Then run F:\LGNTSTA PART2. >> C:\LGNTTMP\HELPER.TXT
|
||||
ECHO. >> C:\LGNTTMP\HELPER.TXT
|
||||
|
||||
ECHO === D01 LOGOUT from initial supervisor session === >> C:\LGNTTMP\HELPER.TXT
|
||||
C:\LGNTTMP\LOGOUT > C:\LGNTTMP\D01_LOG.OUT
|
||||
|
||||
ECHO === D02 LOGIN NOPASSUSER === >> C:\LGNTTMP\HELPER.TXT
|
||||
C:\LGNTTMP\LOGIN NOPASSUSER > C:\LGNTTMP\D02_LGIN.OUT
|
||||
|
||||
ECHO === D03 MAP after NOPASSUSER login === >> C:\LGNTTMP\HELPER.TXT
|
||||
C:\LGNTTMP\MAP > C:\LGNTTMP\D03_MAP.OUT
|
||||
|
||||
ECHO === D04 LOGOUT NOPASSUSER === >> C:\LGNTTMP\HELPER.TXT
|
||||
C:\LGNTTMP\LOGOUT > C:\LGNTTMP\D04_LGOT.OUT
|
||||
|
||||
REM Novell LOGIN /? may print usage directly to the console instead of stdout.
|
||||
REM Store the observed simple syntax as baseline for later implementation tests.
|
||||
ECHO Usage: LOGIN [server/]user > C:\LGNTTMP\D99_HELP.OUT
|
||||
|
||||
ECHO.
|
||||
ECHO LGNTC fertig. Jetzt manuell wieder als SUPERVISOR einloggen:
|
||||
ECHO C:\LGNTTMP\LOGIN SUPERVISOR
|
||||
ECHO Danach ausfuehren:
|
||||
ECHO F:\LGNTSTA PART2
|
||||
ECHO.
|
||||
128
test/login/LGNTSTA.BAT
Normal file
128
test/login/LGNTSTA.BAT
Normal file
@@ -0,0 +1,128 @@
|
||||
@ECHO OFF
|
||||
REM LGNTSTA.BAT
|
||||
REM Two-stage LOGIN/LOGOUT baseline test for MARS NWE.
|
||||
REM
|
||||
REM START from F: while logged in as SUPERVISOR:
|
||||
REM F:\LGNTSTA
|
||||
REM Then run the C: helper manually:
|
||||
REM C:
|
||||
REM CD \LGNTTMP
|
||||
REM LGNTC
|
||||
REM After that login manually using the local C: LOGIN copy and run:
|
||||
REM C:\LGNTTMP\LOGIN SUPERVISOR
|
||||
REM F:\LGNTSTA PART2
|
||||
REM
|
||||
REM PART2 copies captured C: results back to F:\LGNTCMP.
|
||||
REM SYS:LOGIN / SYS:PUBLIC are NOT overwritten by this test.
|
||||
|
||||
IF "%1"=="" GOTO PART1
|
||||
IF "%1"=="PART2" GOTO PART2
|
||||
IF "%1"=="PARt2" GOTO PART2
|
||||
IF "%1"=="PArT2" GOTO PART2
|
||||
IF "%1"=="PArt2" GOTO PART2
|
||||
IF "%1"=="PaRT2" GOTO PART2
|
||||
IF "%1"=="PaRt2" GOTO PART2
|
||||
IF "%1"=="ParT2" GOTO PART2
|
||||
IF "%1"=="Part2" GOTO PART2
|
||||
IF "%1"=="pART2" GOTO PART2
|
||||
IF "%1"=="pARt2" GOTO PART2
|
||||
IF "%1"=="pArT2" GOTO PART2
|
||||
IF "%1"=="pArt2" GOTO PART2
|
||||
IF "%1"=="paRT2" GOTO PART2
|
||||
IF "%1"=="paRt2" GOTO PART2
|
||||
IF "%1"=="parT2" GOTO PART2
|
||||
IF "%1"=="part2" GOTO PART2
|
||||
GOTO USAGE
|
||||
|
||||
:PART1
|
||||
F:
|
||||
CD \
|
||||
|
||||
REM --- Recreate generated result/temp directories. ---
|
||||
IF EXIST LGNTCMP DELTREE /Y LGNTCMP
|
||||
MD LGNTCMP > NUL
|
||||
MD LGNTCMP\OUT > NUL
|
||||
|
||||
ECHO LGNTSTA LOGIN/LOGOUT test > F:\LGNTCMP\RUN.LOG
|
||||
ECHO Part 1 started while logged in as SUPERVISOR. >> F:\LGNTCMP\RUN.LOG
|
||||
ECHO Helper will use user NOPASSUSER on server MARS. >> F:\LGNTCMP\RUN.LOG
|
||||
ECHO This test is manual after logout because F: disappears. >> F:\LGNTCMP\RUN.LOG
|
||||
ECHO SYS:LOGIN, SYS:PUBLIC, and SYS:NPUBLIC are not modified. >> F:\LGNTCMP\RUN.LOG
|
||||
ECHO. >> F:\LGNTCMP\RUN.LOG
|
||||
|
||||
IF EXIST C:\LGNTTMP DELTREE /Y C:\LGNTTMP
|
||||
MD C:\LGNTTMP > NUL
|
||||
|
||||
REM --- Copy Novell baseline tools to local C: directory only. ---
|
||||
REM Do not overwrite SYS:LOGIN, SYS:PUBLIC, or SYS:NPUBLIC.
|
||||
REM LOGIN/MAP are from NLOGIN, LOGOUT is from NPUBLIC.
|
||||
REM The helper runs from C:\LGNTTMP so DOS should find tools there after LOGOUT.
|
||||
ECHO Copying Novell runtime tools to C:\LGNTTMP. >> F:\LGNTCMP\RUN.LOG
|
||||
COPY \NLOGIN\LOGIN.* C:\LGNTTMP >> F:\LGNTCMP\RUN.LOG
|
||||
COPY \NLOGIN\MAP.* C:\LGNTTMP >> F:\LGNTCMP\RUN.LOG
|
||||
COPY \NPUBLIC\LOGOUT.* C:\LGNTTMP >> F:\LGNTCMP\RUN.LOG
|
||||
|
||||
ECHO Copying helper to C:\LGNTTMP\LGNTC.BAT >> F:\LGNTCMP\RUN.LOG
|
||||
COPY F:\LGNTC.BAT C:\LGNTTMP >> F:\LGNTCMP\RUN.LOG
|
||||
|
||||
ECHO. >> F:\LGNTCMP\RUN.LOG
|
||||
ECHO NEXT MANUAL STEPS: >> F:\LGNTCMP\RUN.LOG
|
||||
ECHO C: >> F:\LGNTCMP\RUN.LOG
|
||||
ECHO CD \LGNTTMP >> F:\LGNTCMP\RUN.LOG
|
||||
ECHO LGNTC >> F:\LGNTCMP\RUN.LOG
|
||||
ECHO C:\LGNTTMP\LOGIN SUPERVISOR >> F:\LGNTCMP\RUN.LOG
|
||||
ECHO F:\LGNTSTA PART2 >> F:\LGNTCMP\RUN.LOG
|
||||
|
||||
ECHO LGNTSTA Part 1 fertig.
|
||||
ECHO Jetzt manuell ausfuehren:
|
||||
ECHO C:
|
||||
ECHO CD \LGNTTMP
|
||||
ECHO LGNTC
|
||||
ECHO Danach wieder als SUPERVISOR einloggen mit:
|
||||
ECHO C:\LGNTTMP\LOGIN SUPERVISOR
|
||||
ECHO Dann:
|
||||
ECHO F:\LGNTSTA PART2
|
||||
GOTO END
|
||||
|
||||
:PART2
|
||||
F:
|
||||
CD \
|
||||
MD LGNTCMP > NUL
|
||||
MD LGNTCMP\OUT > NUL
|
||||
|
||||
ECHO. >> F:\LGNTCMP\RUN.LOG
|
||||
ECHO Part 2 collecting files from C:\LGNTTMP. >> F:\LGNTCMP\RUN.LOG
|
||||
COPY C:\LGNTTMP\*.OUT F:\LGNTCMP\OUT >> F:\LGNTCMP\RUN.LOG
|
||||
COPY C:\LGNTTMP\*.TXT F:\LGNTCMP\OUT >> F:\LGNTCMP\RUN.LOG
|
||||
|
||||
ECHO === SUMMARY === > F:\LGNTCMP\SUMMARY.TXT
|
||||
ECHO LGNTSTA LOGIN/LOGOUT baseline finished. >> F:\LGNTCMP\SUMMARY.TXT
|
||||
ECHO Novell LOGIN/MAP/LOGOUT were copied only to C:\LGNTTMP. >> F:\LGNTCMP\SUMMARY.TXT
|
||||
ECHO LOGIN/MAP source: SYS:NLOGIN. LOGOUT source: SYS:NPUBLIC. >> F:\LGNTCMP\SUMMARY.TXT
|
||||
ECHO SYS:LOGIN, SYS:PUBLIC, and SYS:NPUBLIC were not modified. >> F:\LGNTCMP\SUMMARY.TXT
|
||||
ECHO. >> F:\LGNTCMP\SUMMARY.TXT
|
||||
ECHO Expected files: >> F:\LGNTCMP\SUMMARY.TXT
|
||||
ECHO - D01_LOG.OUT LOGOUT output from initial supervisor session. >> F:\LGNTCMP\SUMMARY.TXT
|
||||
ECHO - D02_LGIN.OUT LOGIN NOPASSUSER baseline output. >> F:\LGNTCMP\SUMMARY.TXT
|
||||
ECHO - D03_MAP.OUT MAP output after NOPASSUSER login. >> F:\LGNTCMP\SUMMARY.TXT
|
||||
ECHO - D04_LGOT.OUT LOGOUT output from NOPASSUSER session. >> F:\LGNTCMP\SUMMARY.TXT
|
||||
ECHO - D99_HELP.OUT Simulated LOGIN usage baseline if help is not redirectable. >> F:\LGNTCMP\SUMMARY.TXT
|
||||
ECHO. >> F:\LGNTCMP\SUMMARY.TXT
|
||||
ECHO Optional: LGNTZIP ausfuehren. >> F:\LGNTCMP\SUMMARY.TXT
|
||||
|
||||
ECHO LGNTSTA PART2 fertig.
|
||||
ECHO Ergebnisse liegen in F:\LGNTCMP
|
||||
ECHO Optional: LGNTZIP ausfuehren.
|
||||
GOTO END
|
||||
|
||||
:USAGE
|
||||
ECHO Usage: LGNTSTA [PART2]
|
||||
ECHO.
|
||||
ECHO Ohne Parameter startet LGNTSTA Part 1.
|
||||
ECHO PART2 sammelt nach dem erneuten SUPERVISOR-Login die C:-Ergebnisse ein.
|
||||
ECHO Gueltiger Parameter ist PART2; part2/Part2 wird ebenfalls akzeptiert.
|
||||
ECHO Beispiel:
|
||||
ECHO F:\LGNTSTA PART2
|
||||
GOTO END
|
||||
|
||||
:END
|
||||
27
test/login/LGNTZIP.BAT
Normal file
27
test/login/LGNTZIP.BAT
Normal file
@@ -0,0 +1,27 @@
|
||||
@ECHO OFF
|
||||
REM LGNTZIP.BAT
|
||||
REM Optional packer for LGNTSTA result files.
|
||||
REM Requires ZIP.EXE in PATH or current directory.
|
||||
|
||||
F:
|
||||
CD \LGNTCMP
|
||||
|
||||
IF EXIST LGNTSTA.ZIP DEL LGNTSTA.ZIP
|
||||
IF EXIST ZIP.LOG DEL ZIP.LOG
|
||||
|
||||
ECHO Creating LGNTSTA.ZIP > ZIP.LOG
|
||||
ZIP -r LGNTSTA.ZIP RUN.LOG SUMMARY.TXT OUT >> ZIP.LOG
|
||||
|
||||
REM Cleanup generated temporary files after ZIP.
|
||||
REM Keep LGNTCMP because it contains the ZIP and ZIP.LOG.
|
||||
ECHO Cleaning generated temporary files... >> ZIP.LOG
|
||||
DELTREE /Y C:\LGNTTMP >> ZIP.LOG
|
||||
IF EXIST C:\LGNTC.BAT DEL C:\LGNTC.BAT >> ZIP.LOG
|
||||
|
||||
CD \
|
||||
ECHO.
|
||||
ECHO ZIP step finished.
|
||||
ECHO Check:
|
||||
ECHO F:\LGNTCMP\LGNTSTA.ZIP
|
||||
ECHO F:\LGNTCMP\ZIP.LOG
|
||||
ECHO.
|
||||
74
test/login/README.md
Normal file
74
test/login/README.md
Normal file
@@ -0,0 +1,74 @@
|
||||
# LOGIN / LOGOUT baseline test
|
||||
|
||||
`LGNTSTA` is a manual two-stage baseline test for Novell `LOGIN`, `LOGOUT`, and `MAP`.
|
||||
|
||||
This test does **not** overwrite `SYS:LOGIN`, `SYS:PUBLIC`, or `SYS:NPUBLIC`. It copies the Novell tools to a temporary local directory on `C:` and runs from there. `LOGIN` and `MAP` are copied from `SYS:NLOGIN`; `LOGOUT` is copied from `SYS:NPUBLIC`.
|
||||
|
||||
## Required setup
|
||||
|
||||
User `NOPASSUSER` must exist on `MARS` and must be able to login without a password.
|
||||
|
||||
## Run
|
||||
|
||||
Start while logged in as `SUPERVISOR`:
|
||||
|
||||
```bat
|
||||
F:\LGNTSTA
|
||||
```
|
||||
|
||||
Then run the helper from `C:`:
|
||||
|
||||
```bat
|
||||
C:
|
||||
CD \LGNTTMP
|
||||
LGNTC
|
||||
```
|
||||
|
||||
The helper does:
|
||||
|
||||
```text
|
||||
LOGOUT
|
||||
LOGIN NOPASSUSER
|
||||
MAP
|
||||
LOGOUT
|
||||
```
|
||||
|
||||
All tool calls and redirected output paths are absolute `C:\LGNTTMP\...`, because Novell `LOGIN` can change the current drive/search path.
|
||||
|
||||
Then login manually as `SUPERVISOR` again from the same local tool directory:
|
||||
|
||||
```bat
|
||||
C:\LGNTTMP\LOGIN SUPERVISOR
|
||||
```
|
||||
|
||||
After the login script restores `F:`, collect results:
|
||||
|
||||
```bat
|
||||
F:\LGNTSTA PART2
|
||||
F:\LGNTZIP
|
||||
```
|
||||
|
||||
## Expected output files
|
||||
|
||||
`F:\LGNTCMP\OUT` contains:
|
||||
|
||||
```text
|
||||
D01_LOG.OUT LOGOUT output from initial supervisor session
|
||||
D02_LGIN.OUT LOGIN NOPASSUSER output
|
||||
D03_MAP.OUT MAP output after NOPASSUSER login
|
||||
D04_LGOT.OUT LOGOUT output from NOPASSUSER session
|
||||
D99_HELP.OUT simulated LOGIN usage line for later comparison
|
||||
HELPER.TXT helper trace
|
||||
```
|
||||
|
||||
`D99_HELP.OUT` is intentionally produced with `ECHO`, because Novell `LOGIN /?` may not redirect help text reliably.
|
||||
|
||||
|
||||
## Implementation note
|
||||
|
||||
After `LOGIN NOPASSUSER`, DOS/NetWare may change the current drive/search path. `LGNTC.BAT` therefore calls `C:\LGNTTMP\LOGIN`, `C:\LGNTTMP\MAP`, and `C:\LGNTTMP\LOGOUT` explicitly and redirects to absolute `C:\LGNTTMP\*.OUT` files.
|
||||
|
||||
## Parameter handling
|
||||
|
||||
`LGNTSTA` starts Part 1 only when called without parameters. `PART2` is accepted case-insensitively (`PART2`, `part2`, `Part2`, etc.). Any other parameter prints usage and does not start Part 1, so a typo cannot accidentally reset the test state.
|
||||
|
||||
4
test/logout/README.md
Normal file
4
test/logout/README.md
Normal file
@@ -0,0 +1,4 @@
|
||||
# LOGOUT tests
|
||||
|
||||
`LOGOUT` is covered together with `LOGIN` in `test/login/LGNTSTA.BAT`, because a useful
|
||||
logout baseline needs a controlled login/logout/login sequence.
|
||||
178
test/map/MAPTSTA.BAT
Normal file
178
test/map/MAPTSTA.BAT
Normal file
@@ -0,0 +1,178 @@
|
||||
@ECHO OFF
|
||||
REM MAPTSTA.BAT
|
||||
REM Automated Novell MAP baseline for MARS NWE.
|
||||
REM
|
||||
REM LOGIN is intentionally not tested here.
|
||||
REM PATH/PATHINS/PATHDEL are our own tools and are not part of this Novell MAP baseline.
|
||||
REM
|
||||
REM Run while already logged in and with F: mapped to SYS.
|
||||
REM
|
||||
REM NetWare semantics verified against real NetWare:
|
||||
REM MAP G:=SYS:PUBLIC
|
||||
REM sets the current path of G: to \PUBLIC, but it is NOT a fake root.
|
||||
REM CD \ returns to SYS:\.
|
||||
REM
|
||||
REM MAP ROOT G:=SYS:PUBLIC
|
||||
REM makes SYS:PUBLIC the fake root of G:.
|
||||
REM CD \ stays inside SYS:PUBLIC.
|
||||
REM
|
||||
REM Results:
|
||||
REM F:\MAPCMP\RUN.LOG
|
||||
REM F:\MAPCMP\SUMMARY.TXT
|
||||
REM F:\MAPCMP\OUT\*.OUT
|
||||
|
||||
F:
|
||||
CD \
|
||||
|
||||
REM --- Clean generated test/result directories (contents only). ---
|
||||
IF EXIST MAPTEST\NUL DELTREE /Y MAPTEST\*.*
|
||||
IF EXIST MAPCMP\NUL DELTREE /Y MAPCMP\*.*
|
||||
|
||||
IF NOT EXIST MAPTEST\NUL MD MAPTEST
|
||||
IF NOT EXIST MAPTEST\PUB\NUL MD MAPTEST\PUB
|
||||
IF NOT EXIST MAPCMP\NUL MD MAPCMP
|
||||
IF NOT EXIST MAPCMP\OUT\NUL MD MAPCMP\OUT
|
||||
|
||||
IF EXIST F:\MAPCMP\RUN.LOG DEL F:\MAPCMP\RUN.LOG
|
||||
IF EXIST F:\MAPCMP\SUMMARY.TXT DEL F:\MAPCMP\SUMMARY.TXT
|
||||
IF EXIST F:\MAPCMP\MAPTSTA.ZIP DEL F:\MAPCMP\MAPTSTA.ZIP
|
||||
IF EXIST F:\MAPCMP\ZIP.LOG DEL F:\MAPCMP\ZIP.LOG
|
||||
|
||||
IF EXIST F:\MAPCMP\OUT\M01_MAP.OUT DEL F:\MAPCMP\OUT\M01_MAP.OUT
|
||||
IF EXIST F:\MAPCMP\OUT\M02_SUBCUR.OUT DEL F:\MAPCMP\OUT\M02_SUBCUR.OUT
|
||||
IF EXIST F:\MAPCMP\OUT\M03_SUBCD.OUT DEL F:\MAPCMP\OUT\M03_SUBCD.OUT
|
||||
IF EXIST F:\MAPCMP\OUT\M04_ROOTMAP.OUT DEL F:\MAPCMP\OUT\M04_ROOTMAP.OUT
|
||||
IF EXIST F:\MAPCMP\OUT\M05_ROOTCD.OUT DEL F:\MAPCMP\OUT\M05_ROOTCD.OUT
|
||||
IF EXIST F:\MAPCMP\OUT\M06_NPUBLIC.OUT DEL F:\MAPCMP\OUT\M06_NPUBLIC.OUT
|
||||
IF EXIST F:\MAPCMP\OUT\M07_HOME.OUT DEL F:\MAPCMP\OUT\M07_HOME.OUT
|
||||
IF EXIST F:\MAPCMP\OUT\M08_QUOTA.OUT DEL F:\MAPCMP\OUT\M08_QUOTA.OUT
|
||||
IF EXIST F:\MAPCMP\OUT\M09_UQUOTA.OUT DEL F:\MAPCMP\OUT\M09_UQUOTA.OUT
|
||||
IF EXIST F:\MAPCMP\OUT\M10_DEL.OUT DEL F:\MAPCMP\OUT\M10_DEL.OUT
|
||||
IF EXIST F:\MAPCMP\OUT\M11_AFTER.OUT DEL F:\MAPCMP\OUT\M11_AFTER.OUT
|
||||
IF EXIST F:\MAPCMP\OUT\M12_BAD.OUT DEL F:\MAPCMP\OUT\M12_BAD.OUT
|
||||
|
||||
ECHO MAPTSTA automated Novell MAP baseline > F:\MAPCMP\RUN.LOG
|
||||
ECHO Run while already logged in. >> F:\MAPCMP\RUN.LOG
|
||||
ECHO Date/time stamp skipped to avoid DOS prompt. >> F:\MAPCMP\RUN.LOG
|
||||
ECHO. >> F:\MAPCMP\RUN.LOG
|
||||
|
||||
ECHO MAP TEST ROOT > F:\MAPTEST\ROOT.TXT
|
||||
ECHO MAP TEST PUB > F:\MAPTEST\PUB\PUB.TXT
|
||||
NPUBLIC\FLAG F:\MAPTEST\ROOT.TXT N >> F:\MAPCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\MAPTEST\PUB\PUB.TXT N >> F:\MAPCMP\RUN.LOG
|
||||
|
||||
ECHO === M01 current maps and volumes === >> F:\MAPCMP\RUN.LOG
|
||||
NPUBLIC\MAP > F:\MAPCMP\OUT\M01_MAP.OUT
|
||||
|
||||
ECHO === M02 non-root subdir map G:=SYS:MAPTEST === >> F:\MAPCMP\RUN.LOG
|
||||
NPUBLIC\MAP DEL G: >> F:\MAPCMP\RUN.LOG
|
||||
NPUBLIC\MAP G:=SYS:MAPTEST > F:\MAPCMP\OUT\M02_SUBCUR.OUT
|
||||
NPUBLIC\MAP >> F:\MAPCMP\OUT\M02_SUBCUR.OUT
|
||||
G:
|
||||
CD
|
||||
DIR
|
||||
TYPE ROOT.TXT >> F:\MAPCMP\OUT\M02_SUBCUR.OUT
|
||||
DIR PUB >> F:\MAPCMP\OUT\M02_SUBCUR.OUT
|
||||
TYPE PUB\PUB.TXT >> F:\MAPCMP\OUT\M02_SUBCUR.OUT
|
||||
F:
|
||||
|
||||
ECHO === M03 non-root map after CD backslash should show SYS root === >> F:\MAPCMP\RUN.LOG
|
||||
G:
|
||||
CD \
|
||||
CD > F:\MAPCMP\OUT\M03_SUBCD.OUT
|
||||
DIR >> F:\MAPCMP\OUT\M03_SUBCD.OUT
|
||||
DIR ROOT.TXT >> F:\MAPCMP\OUT\M03_SUBCD.OUT
|
||||
F:
|
||||
|
||||
ECHO === M04 MAP ROOT G:=SYS:MAPTEST fake-root === >> F:\MAPCMP\RUN.LOG
|
||||
NPUBLIC\MAP DEL G: >> F:\MAPCMP\RUN.LOG
|
||||
NPUBLIC\MAP ROOT G:=SYS:MAPTEST > F:\MAPCMP\OUT\M04_ROOTMAP.OUT
|
||||
NPUBLIC\MAP >> F:\MAPCMP\OUT\M04_ROOTMAP.OUT
|
||||
G:
|
||||
CD
|
||||
DIR
|
||||
TYPE ROOT.TXT >> F:\MAPCMP\OUT\M04_ROOTMAP.OUT
|
||||
DIR PUB >> F:\MAPCMP\OUT\M04_ROOTMAP.OUT
|
||||
TYPE PUB\PUB.TXT >> F:\MAPCMP\OUT\M04_ROOTMAP.OUT
|
||||
F:
|
||||
|
||||
ECHO === M05 MAP ROOT after CD backslash should stay in fake-root === >> F:\MAPCMP\RUN.LOG
|
||||
G:
|
||||
CD \
|
||||
CD > F:\MAPCMP\OUT\M05_ROOTCD.OUT
|
||||
DIR >> F:\MAPCMP\OUT\M05_ROOTCD.OUT
|
||||
DIR ROOT.TXT >> F:\MAPCMP\OUT\M05_ROOTCD.OUT
|
||||
TYPE ROOT.TXT >> F:\MAPCMP\OUT\M05_ROOTCD.OUT
|
||||
F:
|
||||
|
||||
ECHO === M06 MAP ROOT to SYS:NPUBLIC and find NDIR.EXE === >> F:\MAPCMP\RUN.LOG
|
||||
NPUBLIC\MAP DEL G: >> F:\MAPCMP\RUN.LOG
|
||||
NPUBLIC\MAP ROOT G:=SYS:NPUBLIC > F:\MAPCMP\OUT\M06_NPUBLIC.OUT
|
||||
NPUBLIC\MAP >> F:\MAPCMP\OUT\M06_NPUBLIC.OUT
|
||||
G:
|
||||
CD \
|
||||
CD >> F:\MAPCMP\OUT\M06_NPUBLIC.OUT
|
||||
DIR NDIR.EXE >> F:\MAPCMP\OUT\M06_NPUBLIC.OUT
|
||||
F:
|
||||
|
||||
ECHO === M07 map H to HOME: volume root === >> F:\MAPCMP\RUN.LOG
|
||||
NPUBLIC\MAP DEL H: >> F:\MAPCMP\RUN.LOG
|
||||
NPUBLIC\MAP H:=HOME: > F:\MAPCMP\OUT\M07_HOME.OUT
|
||||
NPUBLIC\MAP >> F:\MAPCMP\OUT\M07_HOME.OUT
|
||||
DIR H:\ >> F:\MAPCMP\OUT\M07_HOME.OUT
|
||||
|
||||
ECHO === M08 map I to QUOTA: volume root === >> F:\MAPCMP\RUN.LOG
|
||||
NPUBLIC\MAP DEL I: >> F:\MAPCMP\RUN.LOG
|
||||
NPUBLIC\MAP I:=QUOTA: > F:\MAPCMP\OUT\M08_QUOTA.OUT
|
||||
NPUBLIC\MAP >> F:\MAPCMP\OUT\M08_QUOTA.OUT
|
||||
DIR I:\ >> F:\MAPCMP\OUT\M08_QUOTA.OUT
|
||||
|
||||
ECHO === M09 map ROOT J to QUOTA:USERQUOTA fake-root === >> F:\MAPCMP\RUN.LOG
|
||||
NPUBLIC\MAP DEL J: >> F:\MAPCMP\RUN.LOG
|
||||
NPUBLIC\MAP ROOT J:=QUOTA:USERQUOTA > F:\MAPCMP\OUT\M09_UQUOTA.OUT
|
||||
NPUBLIC\MAP >> F:\MAPCMP\OUT\M09_UQUOTA.OUT
|
||||
J:
|
||||
CD \
|
||||
CD >> F:\MAPCMP\OUT\M09_UQUOTA.OUT
|
||||
DIR >> F:\MAPCMP\OUT\M09_UQUOTA.OUT
|
||||
F:
|
||||
|
||||
ECHO === M10 delete mapped drives G H I J === >> F:\MAPCMP\RUN.LOG
|
||||
NPUBLIC\MAP DEL G: > F:\MAPCMP\OUT\M10_DEL.OUT
|
||||
NPUBLIC\MAP DEL H: >> F:\MAPCMP\OUT\M10_DEL.OUT
|
||||
NPUBLIC\MAP DEL I: >> F:\MAPCMP\OUT\M10_DEL.OUT
|
||||
NPUBLIC\MAP DEL J: >> F:\MAPCMP\OUT\M10_DEL.OUT
|
||||
NPUBLIC\MAP >> F:\MAPCMP\OUT\M10_DEL.OUT
|
||||
|
||||
ECHO === M11 access after delete should fail === >> F:\MAPCMP\RUN.LOG
|
||||
DIR G:\ > F:\MAPCMP\OUT\M11_AFTER.OUT
|
||||
DIR H:\ >> F:\MAPCMP\OUT\M11_AFTER.OUT
|
||||
DIR I:\ >> F:\MAPCMP\OUT\M11_AFTER.OUT
|
||||
DIR J:\ >> F:\MAPCMP\OUT\M11_AFTER.OUT
|
||||
|
||||
ECHO === M12 expected failure bad map target === >> F:\MAPCMP\RUN.LOG
|
||||
NPUBLIC\MAP K:=SYS:NO_SUCH_DIR > F:\MAPCMP\OUT\M12_BAD.OUT
|
||||
NPUBLIC\MAP DEL K: >> F:\MAPCMP\OUT\M12_BAD.OUT
|
||||
|
||||
ECHO === SUMMARY === > F:\MAPCMP\SUMMARY.TXT
|
||||
ECHO MAPTSTA Novell MAP baseline finished. >> F:\MAPCMP\SUMMARY.TXT
|
||||
ECHO. >> F:\MAPCMP\SUMMARY.TXT
|
||||
ECHO Expected: >> F:\MAPCMP\SUMMARY.TXT
|
||||
ECHO - M02 non-root G:=SYS:MAPTEST starts in MAPTEST and can read ROOT.TXT. >> F:\MAPCMP\SUMMARY.TXT
|
||||
ECHO - M03 after CD \ on non-root map, G: is back at SYS:\ and ROOT.TXT is not found. >> F:\MAPCMP\SUMMARY.TXT
|
||||
ECHO - M04 MAP ROOT G:=SYS:MAPTEST can read ROOT.TXT and PUB\PUB.TXT. >> F:\MAPCMP\SUMMARY.TXT
|
||||
ECHO - M05 after CD \ on MAP ROOT, G: stays inside fake-root and ROOT.TXT is found. >> F:\MAPCMP\SUMMARY.TXT
|
||||
ECHO - M06 MAP ROOT G:=SYS:NPUBLIC finds NDIR.EXE. >> F:\MAPCMP\SUMMARY.TXT
|
||||
ECHO - M07 maps H to HOME:. >> F:\MAPCMP\SUMMARY.TXT
|
||||
ECHO - M08 maps I to QUOTA:. >> F:\MAPCMP\SUMMARY.TXT
|
||||
ECHO - M09 maps ROOT J to QUOTA:USERQUOTA if that directory exists. >> F:\MAPCMP\SUMMARY.TXT
|
||||
ECHO - M10 deletes G/H/I/J mappings. >> F:\MAPCMP\SUMMARY.TXT
|
||||
ECHO - M11 access after delete should fail. >> F:\MAPCMP\SUMMARY.TXT
|
||||
ECHO - M12 bad target should fail. >> F:\MAPCMP\SUMMARY.TXT
|
||||
ECHO Optional pack results with MAPTZIP.BAT. >> F:\MAPCMP\SUMMARY.TXT
|
||||
|
||||
ECHO.
|
||||
ECHO MAPTSTA fertig.
|
||||
ECHO Ergebnisse liegen in F:\MAPCMP
|
||||
ECHO Optional: MAPTZIP ausfuehren.
|
||||
ECHO.
|
||||
26
test/map/MAPTZIP.BAT
Normal file
26
test/map/MAPTZIP.BAT
Normal file
@@ -0,0 +1,26 @@
|
||||
@ECHO OFF
|
||||
REM MAPTZIP.BAT
|
||||
REM Optional packer for MAPTSTA result files.
|
||||
REM Requires ZIP.EXE in PATH or current directory.
|
||||
|
||||
F:
|
||||
CD \MAPCMP
|
||||
|
||||
IF EXIST MAPTSTA.ZIP DEL MAPTSTA.ZIP
|
||||
IF EXIST ZIP.LOG DEL ZIP.LOG
|
||||
|
||||
ECHO Creating MAPTSTA.ZIP > ZIP.LOG
|
||||
ZIP -r MAPTSTA.ZIP RUN.LOG SUMMARY.TXT 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 \MAPTEST\NUL DELTREE /Y \MAPTEST >> ZIP.LOG
|
||||
CD \
|
||||
ECHO.
|
||||
ECHO ZIP step finished.
|
||||
ECHO Check:
|
||||
ECHO F:\MAPCMP\MAPTSTA.ZIP
|
||||
ECHO F:\MAPCMP\ZIP.LOG
|
||||
ECHO.
|
||||
64
test/map/README.md
Normal file
64
test/map/README.md
Normal file
@@ -0,0 +1,64 @@
|
||||
# MAP automated test
|
||||
|
||||
Novell MAP baseline using `NPUBLIC\MAP`.
|
||||
|
||||
LOGIN is intentionally not tested here. `PATH`, `PATHINS`, and `PATHDEL` are
|
||||
our own tools, so they are not included in this Novell baseline.
|
||||
|
||||
## NetWare semantics
|
||||
|
||||
Verified against real NetWare:
|
||||
|
||||
```text
|
||||
MAP G:=SYS:PUBLIC
|
||||
```
|
||||
|
||||
sets the current path on `G:` to `\PUBLIC`, but it is not a fake root. `CD \`
|
||||
returns to `SYS:\`.
|
||||
|
||||
```text
|
||||
MAP ROOT G:=SYS:PUBLIC
|
||||
```
|
||||
|
||||
sets `SYS:PUBLIC` as fake root. `CD \` stays inside `SYS:PUBLIC`.
|
||||
|
||||
## Run
|
||||
|
||||
Run while already logged in and with `F:` mapped to `SYS`.
|
||||
|
||||
```text
|
||||
MAPTSTA
|
||||
```
|
||||
|
||||
Optional pack:
|
||||
|
||||
```text
|
||||
MAPTZIP
|
||||
```
|
||||
|
||||
Result ZIP:
|
||||
|
||||
```text
|
||||
F:\MAPCMP\MAPTSTA.ZIP
|
||||
```
|
||||
|
||||
Linux package with server log:
|
||||
|
||||
```sh
|
||||
sudo ./mars_packtest_v3.sh maptsta 5 mario
|
||||
```
|
||||
|
||||
## Coverage
|
||||
|
||||
- display current maps
|
||||
- non-root subdir map `G:=SYS:MAPTEST`
|
||||
- verify `CD \` returns to volume root for non-root map
|
||||
- fake-root map `MAP ROOT G:=SYS:MAPTEST`
|
||||
- verify `CD \` stays in fake-root for root map
|
||||
- fake-root map to `SYS:NPUBLIC` and find `NDIR.EXE`
|
||||
- map `H:` to `HOME:`
|
||||
- map `I:` to `QUOTA:`
|
||||
- fake-root map `J:` to `QUOTA:USERQUOTA`
|
||||
- delete `G:`, `H:`, `I:`, `J:`
|
||||
- expected failure after delete
|
||||
- expected failure for bad target
|
||||
161
test/mars_packtest_v3.sh
Normal file
161
test/mars_packtest_v3.sh
Normal file
@@ -0,0 +1,161 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# mars_packtest.sh v3
|
||||
#
|
||||
# Collect a MARS NWE DOS test ZIP, append recent nw.log lines,
|
||||
# copy final package to /tmp, and fix ownership/permissions.
|
||||
#
|
||||
# Usage:
|
||||
# mars_packtest.sh <testname> [minutes] [upload_user]
|
||||
#
|
||||
# Example:
|
||||
# sudo ./mars_packtest.sh ncptsta 5 mario
|
||||
#
|
||||
|
||||
set -eu
|
||||
|
||||
TEST_IN="${1:-}"
|
||||
MINUTES="${2:-5}"
|
||||
UPLOAD_USER="${3:-${SUDO_USER:-$(id -un)}}"
|
||||
|
||||
LOG_FILE="/var/log/mars_nwe/nw.log"
|
||||
SYS_DIR="/var/mars_nwe/SYS"
|
||||
OUT_DIR="/tmp"
|
||||
|
||||
if [ -z "$TEST_IN" ]; then
|
||||
echo "Usage: $0 <testname> [minutes] [upload_user]" >&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
TEST="$(printf '%s' "$TEST_IN" | tr '[:lower:]' '[:upper:]')"
|
||||
|
||||
TEST_DIR="$TEST"
|
||||
ZIP_NAME="$TEST.ZIP"
|
||||
|
||||
case "$TEST" in
|
||||
NCPTSTA)
|
||||
TEST_DIR="NCMP"
|
||||
ZIP_NAME="NCPTSTA.ZIP"
|
||||
;;
|
||||
FILTSTN|FILPREN|FILPOSTN|FILCMPN)
|
||||
TEST_DIR="TFILE"
|
||||
ZIP_NAME="$TEST.ZIP"
|
||||
;;
|
||||
NDIRTSTN|NDIRTSTM|NDIRCMP)
|
||||
TEST_DIR="TNDIR"
|
||||
ZIP_NAME="$TEST.ZIP"
|
||||
;;
|
||||
esac
|
||||
|
||||
SRC_ZIP="$SYS_DIR/$TEST_DIR/$ZIP_NAME"
|
||||
|
||||
if [ ! -f "$SRC_ZIP" ]; then
|
||||
FOUND="$(find "$SYS_DIR" -maxdepth 3 -type f -iname "$TEST.zip" -print 2>/dev/null | head -n 1 || true)"
|
||||
if [ -n "$FOUND" ]; then
|
||||
SRC_ZIP="$FOUND"
|
||||
ZIP_NAME="$(basename "$SRC_ZIP")"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -f "$SRC_ZIP" ]; then
|
||||
echo "ERROR: ZIP not found for test '$TEST_IN'." >&2
|
||||
echo "Tried: $SRC_ZIP" >&2
|
||||
echo "Also searched: $SYS_DIR -maxdepth 3 -iname $TEST.zip" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f "$LOG_FILE" ]; then
|
||||
echo "ERROR: log file not found: $LOG_FILE" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
STAMP="$(date '+%Y%m%d-%H%M%S')"
|
||||
WORK="/tmp/mars_packtest_${TEST}_$$"
|
||||
FINAL="$OUT_DIR/${TEST}_${STAMP}_with_log.zip"
|
||||
LOG_OUT="$WORK/nw_last_${MINUTES}min.log"
|
||||
INFO_OUT="$WORK/package_info.txt"
|
||||
|
||||
mkdir -p "$WORK"
|
||||
|
||||
# Copy original ZIP first, so the original test result remains untouched.
|
||||
cp "$SRC_ZIP" "$FINAL"
|
||||
|
||||
NOW_EPOCH="$(date '+%s')"
|
||||
FROM_EPOCH="$((NOW_EPOCH - MINUTES * 60))"
|
||||
|
||||
# Compute comparable keys outside awk. This avoids running date(1) once per
|
||||
# log line, which is very slow for large nw.log files.
|
||||
#
|
||||
# Key format:
|
||||
# MMDD * 86400 + seconds_since_midnight
|
||||
#
|
||||
# This is intended for short windows like 5-60 minutes. It also handles
|
||||
# midnight wrap for the normal "last few minutes" case.
|
||||
FROM_MD="$(date -d "@$FROM_EPOCH" '+%m%d')"
|
||||
FROM_SOD="$(date -d "@$FROM_EPOCH" '+%H:%M:%S' | awk -F: '{print ($1*3600)+($2*60)+$3}')"
|
||||
NOW_MD="$(date -d "@$NOW_EPOCH" '+%m%d')"
|
||||
NOW_SOD="$(date -d "@$NOW_EPOCH" '+%H:%M:%S' | awk -F: '{print ($1*3600)+($2*60)+$3}')"
|
||||
|
||||
FROM_KEY="$((10#$FROM_MD * 86400 + FROM_SOD))"
|
||||
NOW_KEY="$((10#$NOW_MD * 86400 + NOW_SOD))"
|
||||
|
||||
# Force byte/C locale. nw.log can contain CP437/Latin-1/debug bytes.
|
||||
LC_ALL=C awk -v from_key="$FROM_KEY" -v now_key="$NOW_KEY" '
|
||||
{
|
||||
# Log timestamp format:
|
||||
# 05.26,10:52:36 ...
|
||||
if (match($0, /^[0-9][0-9]\.[0-9][0-9],[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/)) {
|
||||
mon = substr($0, 1, 2) + 0
|
||||
day = substr($0, 4, 2) + 0
|
||||
hh = substr($0, 7, 2) + 0
|
||||
mm = substr($0, 10, 2) + 0
|
||||
ss = substr($0, 13, 2) + 0
|
||||
key = ((mon * 100) + day) * 86400 + (hh * 3600) + (mm * 60) + ss
|
||||
|
||||
if (from_key <= now_key) {
|
||||
if (key >= from_key && key <= now_key) print
|
||||
} else {
|
||||
# Midnight/month/year wrap for short recent windows.
|
||||
if (key >= from_key || key <= now_key) print
|
||||
}
|
||||
}
|
||||
}
|
||||
' "$LOG_FILE" > "$LOG_OUT"
|
||||
|
||||
{
|
||||
echo "MARS NWE test package"
|
||||
echo "====================="
|
||||
echo
|
||||
echo "Test input: $TEST_IN"
|
||||
echo "Test name: $TEST"
|
||||
echo "Source ZIP: $SRC_ZIP"
|
||||
echo "Final ZIP: $FINAL"
|
||||
echo "Log file: $LOG_FILE"
|
||||
echo "Log window: last $MINUTES minute(s)"
|
||||
echo "Created: $(date)"
|
||||
echo "Upload user: $UPLOAD_USER"
|
||||
echo "From key: $FROM_KEY"
|
||||
echo "Now key: $NOW_KEY"
|
||||
echo
|
||||
echo "Included extra files:"
|
||||
echo " nw_last_${MINUTES}min.log"
|
||||
echo " package_info.txt"
|
||||
} > "$INFO_OUT"
|
||||
|
||||
(
|
||||
cd "$WORK"
|
||||
zip -q "$FINAL" "$(basename "$LOG_OUT")" "$(basename "$INFO_OUT")"
|
||||
)
|
||||
|
||||
if id "$UPLOAD_USER" >/dev/null 2>&1; then
|
||||
chown "$UPLOAD_USER":"$(id -gn "$UPLOAD_USER")" "$FINAL" || true
|
||||
fi
|
||||
chmod 0644 "$FINAL"
|
||||
|
||||
rm -rf "$WORK"
|
||||
|
||||
echo "Created package:"
|
||||
echo " $FINAL"
|
||||
echo
|
||||
echo "Upload as user:"
|
||||
echo " $UPLOAD_USER"
|
||||
56
test/ncopy/NCPCMPN.BAT
Normal file
56
test/ncopy/NCPCMPN.BAT
Normal file
@@ -0,0 +1,56 @@
|
||||
@ECHO OFF
|
||||
REM NCPCMPN.BAT
|
||||
REM Repeat comparison/show output for NCOPY test.
|
||||
|
||||
CLS
|
||||
ECHO === NCPCMPN: NCOPY PRE/POST Compare ===
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === K01 Source A FLAG vor/nach ===
|
||||
FC F:\NCMP\PRE\SRCA.OUT F:\NCMP\POST\SRCA.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === K02 Source B FLAG vor/nach ===
|
||||
FC F:\NCMP\PRE\SRCB.OUT F:\NCMP\POST\SRCB.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === K03 Source C FLAG vor/nach ===
|
||||
FC F:\NCMP\PRE\SRCC.OUT F:\NCMP\POST\SRCC.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === K04 Destination NDIR ===
|
||||
TYPE F:\NCMP\POST\DSTNDIR.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === K05 Destination DATES ===
|
||||
TYPE F:\NCMP\POST\DSTDATE.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === K06 /S Copy SUB ===
|
||||
TYPE F:\NCMP\POST\SCPYSUB.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === K07 /E Copy SUB ===
|
||||
TYPE F:\NCMP\POST\ECPYSUB.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === K08 Archive SUB Output ===
|
||||
TYPE F:\NCMP\POST\ARCHSUB.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
171
test/ncopy/NCPTSTA.BAT
Normal file
171
test/ncopy/NCPTSTA.BAT
Normal file
@@ -0,0 +1,171 @@
|
||||
@ECHO OFF
|
||||
REM NCPTSTA.BAT
|
||||
REM Automated Novell NCOPY baseline 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
|
||||
|
||||
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 --- 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\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\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 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 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
|
||||
|
||||
ECHO === NCOPY SINGLE FILES === >> F:\NCMP\RUN.LOG
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
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 === 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.
|
||||
ECHO NCPTSTA fertig.
|
||||
ECHO Ergebnisse liegen in F:\NCMP
|
||||
ECHO Optional: NCPTZIP ausfuehren.
|
||||
ECHO.
|
||||
32
test/ncopy/NCPTSTM.TST
Normal file
32
test/ncopy/NCPTSTM.TST
Normal file
@@ -0,0 +1,32 @@
|
||||
# NCPTSTM.TST
|
||||
# MARS/dosutils NCOPY regression notes/spec.
|
||||
#
|
||||
# Novell baseline:
|
||||
# NCPTSTN.BAT
|
||||
#
|
||||
# Tool:
|
||||
# NPUBLIC\NCOPY
|
||||
#
|
||||
# Test dirs:
|
||||
# F:\TCOPY
|
||||
# F:\NCMP
|
||||
#
|
||||
# Coverage:
|
||||
# - normal file copy
|
||||
# - overwrite with /V
|
||||
# - /S subdirectory copy
|
||||
# - /S /E subdirectory copy including empty dirs
|
||||
# - /A archive-bit copy
|
||||
# - /M archive-bit copy and clear source archive bit
|
||||
# - FLAG/NDIR readback before and after
|
||||
#
|
||||
# Important:
|
||||
# - destination directories for multi-file copies must exist first
|
||||
# - /E must be used with /S
|
||||
#
|
||||
# Expected:
|
||||
# - destination files exist and are readable
|
||||
# - /S copies subdir files
|
||||
# - /S /E also copies empty directories where supported
|
||||
# - /M clears archive bit on copied source files
|
||||
# - no unexpected server completion codes
|
||||
262
test/ncopy/NCPTSTN.BAT
Normal file
262
test/ncopy/NCPTSTN.BAT
Normal file
@@ -0,0 +1,262 @@
|
||||
@ECHO OFF
|
||||
REM NCPTSTN.BAT
|
||||
REM Novell-only NCOPY baseline for MARS NWE.
|
||||
REM
|
||||
REM NPUBLIC = originale Novell Tools
|
||||
REM PUBLIC = MARS/dosutils Tools
|
||||
REM
|
||||
REM Testordner:
|
||||
REM F:\TCOPY
|
||||
REM
|
||||
REM Vergleichsdateien:
|
||||
REM F:\NCMP\PRE\*.OUT
|
||||
REM F:\NCMP\POST\*.OUT
|
||||
REM
|
||||
REM Wichtig fuer Novell NCOPY:
|
||||
REM - Bei Multi-File Copy muss das Zielverzeichnis vorher existieren,
|
||||
REM sonst interpretiert NCOPY das Ziel als einzelne Datei.
|
||||
REM - /E ist nur zusammen mit /S gueltig.
|
||||
REM - Fuer Multi-File Copy ist SRC\*.* + TO + Zielverzeichnis am klarsten.
|
||||
|
||||
CLS
|
||||
ECHO === NCPTSTN: Novell NCOPY Baseline ===
|
||||
ECHO.
|
||||
ECHO Dieses Script benutzt NPUBLIC\NCOPY und schreibt PRE/POST Vergleichsdaten.
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === C00: Testordner vorbereiten ===
|
||||
F:
|
||||
CD \
|
||||
|
||||
REM --- Clean generated test/result directories (contents only). ---
|
||||
IF EXIST TNCOPY\NUL DELTREE /Y TNCOPY\*.*
|
||||
IF NOT EXIST TCOPY MD TCOPY
|
||||
IF NOT EXIST TCOPY\SRC MD TCOPY\SRC
|
||||
IF NOT EXIST TCOPY\SRC\SUB MD TCOPY\SRC\SUB
|
||||
IF NOT EXIST TCOPY\SRC\EMPTY MD TCOPY\SRC\EMPTY
|
||||
IF NOT EXIST TCOPY\DST MD TCOPY\DST
|
||||
IF NOT EXIST TCOPY\DST\SCPY MD TCOPY\DST\SCPY
|
||||
IF NOT EXIST TCOPY\DST\ECPY MD TCOPY\DST\ECPY
|
||||
IF NOT EXIST TCOPY\ARCH MD TCOPY\ARCH
|
||||
IF NOT EXIST TCOPY\ARCH\ACPY MD TCOPY\ARCH\ACPY
|
||||
IF NOT EXIST TCOPY\ARCH\MCPY MD TCOPY\ARCH\MCPY
|
||||
IF NOT EXIST NCMP MD NCMP
|
||||
IF NOT EXIST NCMP\PRE MD NCMP\PRE
|
||||
IF NOT EXIST NCMP\POST MD NCMP\POST
|
||||
ECHO NCOPY TEST A > TCOPY\SRC\A.TXT
|
||||
ECHO NCOPY TEST B > TCOPY\SRC\B.TXT
|
||||
ECHO NCOPY TEST C > TCOPY\SRC\SUB\C.TXT
|
||||
ECHO OLD DEST FILE > TCOPY\DST\A.TXT
|
||||
ECHO.
|
||||
ECHO Angelegt/geprueft:
|
||||
ECHO F:\TCOPY\SRC\A.TXT
|
||||
ECHO F:\TCOPY\SRC\B.TXT
|
||||
ECHO F:\TCOPY\SRC\SUB\C.TXT
|
||||
ECHO F:\TCOPY\SRC\EMPTY
|
||||
ECHO F:\TCOPY\DST\SCPY
|
||||
ECHO F:\TCOPY\DST\ECPY
|
||||
ECHO F:\TCOPY\ARCH\ACPY
|
||||
ECHO F:\TCOPY\ARCH\MCPY
|
||||
ECHO F:\NCMP\PRE / POST
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === C01: Alte Vergleichsausgaben loeschen ===
|
||||
DEL F:\NCMP\PRE\*.OUT
|
||||
DEL F:\NCMP\POST\*.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === C02: Attribute normalisieren ===
|
||||
NPUBLIC\FLAG F:\TCOPY\SRC\A.TXT N
|
||||
NPUBLIC\FLAG F:\TCOPY\SRC\B.TXT N
|
||||
NPUBLIC\FLAG F:\TCOPY\SRC\SUB\C.TXT N
|
||||
NPUBLIC\FLAG F:\TCOPY\DST\A.TXT N
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === C03: Testattribute setzen ===
|
||||
ECHO A.TXT: +H +A
|
||||
ECHO B.TXT: +RO +A
|
||||
ECHO C.TXT: +A
|
||||
NPUBLIC\FLAG F:\TCOPY\SRC\A.TXT +H +A
|
||||
NPUBLIC\FLAG F:\TCOPY\SRC\B.TXT +RO +A
|
||||
NPUBLIC\FLAG F:\TCOPY\SRC\SUB\C.TXT +A
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === C04: PRE-Ausgaben erzeugen ===
|
||||
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
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === C05: PRE Source NDIR ===
|
||||
TYPE F:\NCMP\PRE\SRCNDIR.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === C06: PRE Source DATES ===
|
||||
TYPE F:\NCMP\PRE\SRCDATE.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === C10: NCOPY normal copy A.TXT nach DST ===
|
||||
NPUBLIC\NCOPY F:\TCOPY\SRC\A.TXT TO F:\TCOPY\DST\A1.TXT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === C11: NCOPY overwrite mit /V ===
|
||||
ECHO Erwartung: NCOPY fragt ggf. wegen bestehendem Ziel.
|
||||
ECHO Wenn gefragt wird, overwrite bestaetigen.
|
||||
NPUBLIC\NCOPY F:\TCOPY\SRC\A.TXT TO F:\TCOPY\DST\A.TXT /V
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === C12: NCOPY B.TXT normal ===
|
||||
NPUBLIC\NCOPY F:\TCOPY\SRC\B.TXT TO F:\TCOPY\DST\B.TXT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === C13: NCOPY Subdirs mit /S ===
|
||||
ECHO Zielverzeichnis SCPY existiert bereits.
|
||||
NPUBLIC\NCOPY F:\TCOPY\SRC\*.* TO F:\TCOPY\DST\SCPY /S
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === C14: NCOPY Subdirs inklusive leer mit /S /E ===
|
||||
ECHO /E ist nur zusammen mit /S gueltig.
|
||||
NPUBLIC\NCOPY F:\TCOPY\SRC\*.* TO F:\TCOPY\DST\ECPY /S /E
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === C15: NCOPY Archive-Bit Copy mit /A /S ===
|
||||
ECHO Zielverzeichnis ACPY existiert bereits.
|
||||
NPUBLIC\NCOPY F:\TCOPY\SRC\*.* TO F:\TCOPY\ARCH\ACPY /A /S
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === C16: NCOPY Archive-Bit Copy mit /M /S ===
|
||||
ECHO Achtung: /M sollte Archive-Bit an Quelle loeschen.
|
||||
NPUBLIC\NCOPY F:\TCOPY\SRC\*.* TO F:\TCOPY\ARCH\MCPY /M /S
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === C20: POST-Ausgaben erzeugen ===
|
||||
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\A.TXT > F:\NCMP\POST\DSTA.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.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === C21: Vergleich Source A FLAG vor/nach ===
|
||||
FC F:\NCMP\PRE\SRCA.OUT F:\NCMP\POST\SRCA.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === C22: Vergleich Source B FLAG vor/nach ===
|
||||
FC F:\NCMP\PRE\SRCB.OUT F:\NCMP\POST\SRCB.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === C23: Vergleich Source C FLAG vor/nach ===
|
||||
FC F:\NCMP\PRE\SRCC.OUT F:\NCMP\POST\SRCC.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === C24: POST Destination NDIR ===
|
||||
TYPE F:\NCMP\POST\DSTNDIR.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === C25: POST Destination DATES ===
|
||||
TYPE F:\NCMP\POST\DSTDATE.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === C26: POST /S Copy SUB ===
|
||||
TYPE F:\NCMP\POST\SCPYSUB.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === C27: POST /E Copy SUB inklusive leer ===
|
||||
TYPE F:\NCMP\POST\ECPYSUB.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === C28: POST Archive Copy SUB ===
|
||||
TYPE F:\NCMP\POST\ARCHSUB.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === C29: POST Source nach /M ===
|
||||
TYPE F:\NCMP\POST\SRCNDIR.OUT
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === C30: Cleanup Attribute ===
|
||||
NPUBLIC\FLAG F:\TCOPY\SRC\A.TXT N
|
||||
NPUBLIC\FLAG F:\TCOPY\SRC\B.TXT N
|
||||
NPUBLIC\FLAG F:\TCOPY\SRC\SUB\C.TXT N
|
||||
NPUBLIC\FLAG F:\TCOPY\DST\A.TXT N
|
||||
NPUBLIC\FLAG F:\TCOPY\DST\A1.TXT N
|
||||
NPUBLIC\FLAG F:\TCOPY\DST\B.TXT N
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
CLS
|
||||
ECHO === NCPTSTN fertig ===
|
||||
ECHO.
|
||||
ECHO Vergleichsdateien:
|
||||
ECHO F:\NCMP\PRE\*.OUT
|
||||
ECHO F:\NCMP\POST\*.OUT
|
||||
ECHO.
|
||||
ECHO Im Serverlog pruefen:
|
||||
ECHO open/create/read/write/close
|
||||
ECHO overwrites
|
||||
ECHO directory scans
|
||||
ECHO Subdir copy /S und /S /E
|
||||
ECHO Archive-bit Verhalten /A und /M
|
||||
ECHO keine unerwarteten Completion Codes
|
||||
ECHO.
|
||||
28
test/ncopy/NCPTZIP.BAT
Normal file
28
test/ncopy/NCPTZIP.BAT
Normal file
@@ -0,0 +1,28 @@
|
||||
@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.
|
||||
64
test/ncopy/README.md
Normal file
64
test/ncopy/README.md
Normal file
@@ -0,0 +1,64 @@
|
||||
# NCOPY tests
|
||||
|
||||
Novell-only NCOPY tests.
|
||||
|
||||
## 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. |
|
||||
| `NCPTSTN.BAT` | Manual/pause-based NCOPY baseline test. |
|
||||
| `NCPCMPN.BAT` | Manual repeat selected comparisons/output. |
|
||||
| `NCPTSTM.TST` | MARS/dosutils regression notes/spec. |
|
||||
|
||||
## Recommended now
|
||||
|
||||
Use:
|
||||
|
||||
```text
|
||||
NCPTSTA.BAT
|
||||
```
|
||||
|
||||
Then collect:
|
||||
|
||||
```text
|
||||
F:\NCMP\NCPTSTA.ZIP
|
||||
```
|
||||
|
||||
or, if ZIP is not installed yet:
|
||||
|
||||
```text
|
||||
F:\NCMP\RUN.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:
|
||||
|
||||
```text
|
||||
F:\NCMP
|
||||
```
|
||||
|
||||
Upload either the directory contents or run:
|
||||
|
||||
```text
|
||||
NCPTZIP
|
||||
```
|
||||
|
||||
and upload:
|
||||
|
||||
```text
|
||||
F:\NCMP\NCPTSTA.ZIP
|
||||
```
|
||||
|
||||
This version avoids wildcard deletes, interactive overwrite prompts, PAUSE, and automatic ZIP.
|
||||
45
test/ncopy/README_AUTO.md
Normal file
45
test/ncopy/README_AUTO.md
Normal file
@@ -0,0 +1,45 @@
|
||||
# NCOPY automated test
|
||||
|
||||
`NCPTSTA.BAT` is the automated/no-screenshot variant of the NCOPY test.
|
||||
|
||||
## Run
|
||||
|
||||
```text
|
||||
NCPTSTA.BAT
|
||||
```
|
||||
|
||||
It does not pause and redirects tool output into result files.
|
||||
|
||||
## Result directory
|
||||
|
||||
```text
|
||||
F:\NCMP
|
||||
```
|
||||
|
||||
Important files:
|
||||
|
||||
```text
|
||||
F:\NCMP\RUN.LOG
|
||||
F:\NCMP\SUMMARY.TXT
|
||||
F:\NCMP\PRE\*.OUT
|
||||
F:\NCMP\POST\*.OUT
|
||||
F:\NCMP\CMP\*.OUT
|
||||
```
|
||||
|
||||
If `ZIP.EXE` is installed and in `PATH`, the script also creates:
|
||||
|
||||
```text
|
||||
F:\NCMP\NCPTSTA.ZIP
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
Classic DOS redirection normally captures stdout. Most Novell tools print their
|
||||
normal output there, so this avoids screenshots and OCR for most tests.
|
||||
|
||||
Interactive prompts are avoided in this automated variant. The `/V` verify path
|
||||
is tested by copying to a fresh destination instead of overwriting an existing
|
||||
file that would prompt for confirmation.
|
||||
|
||||
`/M` is expected to clear the archive bit on copied source files, so PRE/POST
|
||||
source flag comparisons may intentionally differ.
|
||||
134
test/ndir/NDIRCMP.BAT
Normal file
134
test/ndir/NDIRCMP.BAT
Normal file
@@ -0,0 +1,134 @@
|
||||
@ECHO OFF
|
||||
REM NDIRCMP4.BAT
|
||||
REM NDIR Vergleichstest mit kleinerem Baum, /SHORT, /RIGHTS und Trustee-Aenderungen.
|
||||
REM
|
||||
REM Linux-Vorbereitung:
|
||||
REM sh mkndirdata.sh /var/mars_nwe/SYS
|
||||
REM
|
||||
REM DOS-Annahmen:
|
||||
REM NPUBLIC = Novell Tools
|
||||
REM PUBLIC = unsere Tools
|
||||
REM NDIRN = Novell-Vergleichsbaum
|
||||
REM NDIRU = Unser Vergleichsbaum
|
||||
REM
|
||||
REM Hinweis:
|
||||
REM Fuer lange Ausgaben nutzen wir /SHORT /CONTINUOUS.
|
||||
REM Die PAUSEs sind absichtlich fuer Screenshots.
|
||||
|
||||
ECHO.
|
||||
ECHO === NDIRCMP4: kompakter NDIR Test ===
|
||||
ECHO Erwartet vorhandene Testbaeume NDIRN und NDIRU.
|
||||
ECHO Falls nicht vorhanden: Linux mkndirdata.sh ausfuehren.
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
ECHO.
|
||||
ECHO === Block 1A: Novell Basis NDIRN ===
|
||||
ECHO NPUBLIC\NDIR NDIRN
|
||||
NPUBLIC\NDIR NDIRN
|
||||
PAUSE
|
||||
|
||||
ECHO === Block 1B: Unser Basis NDIRU ===
|
||||
ECHO PUBLIC\NDIR NDIRU
|
||||
PUBLIC\NDIR NDIRU
|
||||
PAUSE
|
||||
|
||||
ECHO.
|
||||
ECHO === Block 2A: Novell /DATES ===
|
||||
ECHO NPUBLIC\NDIR NDIRN /DATES
|
||||
NPUBLIC\NDIR NDIRN /DATES
|
||||
PAUSE
|
||||
|
||||
ECHO === Block 2B: Unser /DATES ===
|
||||
ECHO PUBLIC\NDIR NDIRU /DATES
|
||||
PUBLIC\NDIR NDIRU /DATES
|
||||
PAUSE
|
||||
|
||||
ECHO.
|
||||
ECHO === Block 3A: Novell /RIGHTS ===
|
||||
ECHO NPUBLIC\NDIR NDIRN /RIGHTS
|
||||
NPUBLIC\NDIR NDIRN /RIGHTS
|
||||
PAUSE
|
||||
|
||||
ECHO === Block 3B: Unser /RIGHTS ===
|
||||
ECHO PUBLIC\NDIR NDIRU /RIGHTS
|
||||
PUBLIC\NDIR NDIRU /RIGHTS
|
||||
PAUSE
|
||||
|
||||
ECHO.
|
||||
ECHO === Block 4B: Unser /SUB /SHORT ===
|
||||
ECHO PUBLIC\NDIR NDIRU /SUB /SHORT /CONTINUOUS
|
||||
PUBLIC\NDIR NDIRU /SUB /SHORT /CONTINUOUS
|
||||
PAUSE
|
||||
|
||||
ECHO.
|
||||
ECHO === Block 5B: Unser /SUB /RIGHTS /SHORT ===
|
||||
ECHO PUBLIC\NDIR NDIRU /SUB /RIGHTS /SHORT /CONTINUOUS
|
||||
PUBLIC\NDIR NDIRU /SUB /RIGHTS /SHORT /CONTINUOUS
|
||||
PAUSE
|
||||
|
||||
ECHO.
|
||||
ECHO === Block 6B: Unser wildcard *.EXE /SUB /SHORT ===
|
||||
ECHO PUBLIC\NDIR NDIRU\*.EXE /SUB /SHORT /CONTINUOUS
|
||||
PUBLIC\NDIR NDIRU\*.EXE /SUB /SHORT /CONTINUOUS
|
||||
PAUSE
|
||||
|
||||
ECHO.
|
||||
ECHO === Block 7B: Ausgangsrechte vor GRANT/REVOKE/REMOVE ===
|
||||
ECHO PUBLIC\RIGHTS NDIRU\SUB1
|
||||
PUBLIC\RIGHTS NDIRU\SUB1
|
||||
ECHO.
|
||||
ECHO PUBLIC\NDIR NDIRU /SUB /RIGHTS /SHORT /CONTINUOUS
|
||||
PUBLIC\NDIR NDIRU /SUB /RIGHTS /SHORT /CONTINUOUS
|
||||
PAUSE
|
||||
|
||||
ECHO.
|
||||
ECHO === Block 8B: GRANT eingeschraenkte Rechte auf NDIRU\SUB1 ===
|
||||
ECHO PUBLIC\GRANT R F FOR NDIRU\SUB1 TO USER MARIO
|
||||
PUBLIC\GRANT R F FOR NDIRU\SUB1 TO USER MARIO
|
||||
ECHO.
|
||||
ECHO PUBLIC\RIGHTS NDIRU\SUB1
|
||||
PUBLIC\RIGHTS NDIRU\SUB1
|
||||
ECHO.
|
||||
ECHO PUBLIC\NDIR NDIRU /SUB /RIGHTS /SHORT /CONTINUOUS
|
||||
PUBLIC\NDIR NDIRU /SUB /RIGHTS /SHORT /CONTINUOUS
|
||||
PAUSE
|
||||
|
||||
ECHO.
|
||||
ECHO === Block 9B: GRANT mehr Rechte auf NDIRU\SUB1 ===
|
||||
ECHO PUBLIC\GRANT R W C E M F A FOR NDIRU\SUB1 TO USER MARIO
|
||||
PUBLIC\GRANT R W C E M F A FOR NDIRU\SUB1 TO USER MARIO
|
||||
ECHO.
|
||||
ECHO PUBLIC\RIGHTS NDIRU\SUB1
|
||||
PUBLIC\RIGHTS NDIRU\SUB1
|
||||
ECHO.
|
||||
ECHO PUBLIC\NDIR NDIRU /SUB /RIGHTS /SHORT /CONTINUOUS
|
||||
PUBLIC\NDIR NDIRU /SUB /RIGHTS /SHORT /CONTINUOUS
|
||||
PAUSE
|
||||
|
||||
ECHO.
|
||||
ECHO === Block 10B: REVOKE W M von NDIRU\SUB1 ===
|
||||
ECHO PUBLIC\REVOKE W M FOR NDIRU\SUB1 FROM USER MARIO
|
||||
PUBLIC\REVOKE W M FOR NDIRU\SUB1 FROM USER MARIO
|
||||
ECHO.
|
||||
ECHO PUBLIC\RIGHTS NDIRU\SUB1
|
||||
PUBLIC\RIGHTS NDIRU\SUB1
|
||||
ECHO.
|
||||
ECHO PUBLIC\NDIR NDIRU /SUB /RIGHTS /SHORT /CONTINUOUS
|
||||
PUBLIC\NDIR NDIRU /SUB /RIGHTS /SHORT /CONTINUOUS
|
||||
PAUSE
|
||||
|
||||
ECHO.
|
||||
ECHO === Block 11B: REMOVE Trustee von NDIRU\SUB1 ===
|
||||
ECHO PUBLIC\REMOVE USER MARIO FROM NDIRU\SUB1
|
||||
PUBLIC\REMOVE USER MARIO FROM NDIRU\SUB1
|
||||
ECHO.
|
||||
ECHO PUBLIC\RIGHTS NDIRU\SUB1
|
||||
PUBLIC\RIGHTS NDIRU\SUB1
|
||||
ECHO.
|
||||
ECHO PUBLIC\NDIR NDIRU /SUB /RIGHTS /SHORT /CONTINUOUS
|
||||
PUBLIC\NDIR NDIRU /SUB /RIGHTS /SHORT /CONTINUOUS
|
||||
PAUSE
|
||||
|
||||
ECHO.
|
||||
ECHO === Fertig ===
|
||||
172
test/ndir/NDIRTSTA.BAT
Normal file
172
test/ndir/NDIRTSTA.BAT
Normal file
@@ -0,0 +1,172 @@
|
||||
@ECHO OFF
|
||||
REM NDIRTSTA.BAT
|
||||
REM Automated Novell NDIR baseline for MARS NWE.
|
||||
REM
|
||||
REM No PAUSE, no screenshots required.
|
||||
REM All output is redirected into F:\NDCMP.
|
||||
REM
|
||||
REM Test tree:
|
||||
REM F:\TNDIR
|
||||
REM
|
||||
REM Results:
|
||||
REM F:\NDCMP\RUN.LOG
|
||||
REM F:\NDCMP\SUMMARY.TXT
|
||||
REM F:\NDCMP\OUT\*.OUT
|
||||
|
||||
F:
|
||||
CD \
|
||||
|
||||
REM --- Clean generated test/result directories (contents only). ---
|
||||
IF EXIST NDIRTEST\NUL DELTREE /Y NDIRTEST\*.*
|
||||
IF EXIST NDIRCMP\NUL DELTREE /Y NDIRCMP\*.*
|
||||
|
||||
REM --- Directory setup ---
|
||||
IF NOT EXIST TNDIR\NUL MD TNDIR
|
||||
IF NOT EXIST TNDIR\SUBDIR\NUL MD TNDIR\SUBDIR
|
||||
IF NOT EXIST NDCMP\NUL MD NDCMP
|
||||
IF NOT EXIST NDCMP\OUT\NUL MD NDCMP\OUT
|
||||
|
||||
REM --- Clean result files, no wildcard DEL to avoid DOS prompts ---
|
||||
IF EXIST F:\NDCMP\RUN.LOG DEL F:\NDCMP\RUN.LOG
|
||||
IF EXIST F:\NDCMP\SUMMARY.TXT DEL F:\NDCMP\SUMMARY.TXT
|
||||
IF EXIST F:\NDCMP\ZIP.LOG DEL F:\NDCMP\ZIP.LOG
|
||||
IF EXIST F:\NDCMP\NDIRTSTA.ZIP DEL F:\NDCMP\NDIRTSTA.ZIP
|
||||
|
||||
IF EXIST F:\NDCMP\OUT\N01_ROOT.OUT DEL F:\NDCMP\OUT\N01_ROOT.OUT
|
||||
IF EXIST F:\NDCMP\OUT\N02_ALFA.OUT DEL F:\NDCMP\OUT\N02_ALFA.OUT
|
||||
IF EXIST F:\NDCMP\OUT\N02_BETA.OUT DEL F:\NDCMP\OUT\N02_BETA.OUT
|
||||
IF EXIST F:\NDCMP\OUT\N03_DATES.OUT DEL F:\NDCMP\OUT\N03_DATES.OUT
|
||||
IF EXIST F:\NDCMP\OUT\N03_ADATE.OUT DEL F:\NDCMP\OUT\N03_ADATE.OUT
|
||||
IF EXIST F:\NDCMP\OUT\N04_RGT.OUT DEL F:\NDCMP\OUT\N04_RGT.OUT
|
||||
IF EXIST F:\NDCMP\OUT\N04_RGTA.OUT DEL F:\NDCMP\OUT\N04_RGTA.OUT
|
||||
IF EXIST F:\NDCMP\OUT\N05_FLGA.OUT DEL F:\NDCMP\OUT\N05_FLGA.OUT
|
||||
IF EXIST F:\NDCMP\OUT\N05_FLGB.OUT DEL F:\NDCMP\OUT\N05_FLGB.OUT
|
||||
IF EXIST F:\NDCMP\OUT\N05_FLGG.OUT DEL F:\NDCMP\OUT\N05_FLGG.OUT
|
||||
IF EXIST F:\NDCMP\OUT\N06_ATTR.OUT DEL F:\NDCMP\OUT\N06_ATTR.OUT
|
||||
IF EXIST F:\NDCMP\OUT\N06_ADAT.OUT DEL F:\NDCMP\OUT\N06_ADAT.OUT
|
||||
IF EXIST F:\NDCMP\OUT\N07_H.OUT DEL F:\NDCMP\OUT\N07_H.OUT
|
||||
IF EXIST F:\NDCMP\OUT\N07_RO.OUT DEL F:\NDCMP\OUT\N07_RO.OUT
|
||||
IF EXIST F:\NDCMP\OUT\N07_SY.OUT DEL F:\NDCMP\OUT\N07_SY.OUT
|
||||
IF EXIST F:\NDCMP\OUT\N07_A.OUT DEL F:\NDCMP\OUT\N07_A.OUT
|
||||
IF EXIST F:\NDCMP\OUT\N08_NOTH.OUT DEL F:\NDCMP\OUT\N08_NOTH.OUT
|
||||
IF EXIST F:\NDCMP\OUT\N08_NOTR.OUT DEL F:\NDCMP\OUT\N08_NOTR.OUT
|
||||
IF EXIST F:\NDCMP\OUT\N09_SUN.OUT DEL F:\NDCMP\OUT\N09_SUN.OUT
|
||||
IF EXIST F:\NDCMP\OUT\N09_SSI.OUT DEL F:\NDCMP\OUT\N09_SSI.OUT
|
||||
IF EXIST F:\NDCMP\OUT\N09_SUP.OUT DEL F:\NDCMP\OUT\N09_SUP.OUT
|
||||
IF EXIST F:\NDCMP\OUT\N10_TXT.OUT DEL F:\NDCMP\OUT\N10_TXT.OUT
|
||||
IF EXIST F:\NDCMP\OUT\N10_DAT.OUT DEL F:\NDCMP\OUT\N10_DAT.OUT
|
||||
IF EXIST F:\NDCMP\OUT\N11_FO.OUT DEL F:\NDCMP\OUT\N11_FO.OUT
|
||||
IF EXIST F:\NDCMP\OUT\N11_DO.OUT DEL F:\NDCMP\OUT\N11_DO.OUT
|
||||
IF EXIST F:\NDCMP\OUT\N12_SUB.OUT DEL F:\NDCMP\OUT\N12_SUB.OUT
|
||||
IF EXIST F:\NDCMP\OUT\N12_SDIR.OUT DEL F:\NDCMP\OUT\N12_SDIR.OUT
|
||||
IF EXIST F:\NDCMP\OUT\N14_FINAL.OUT DEL F:\NDCMP\OUT\N14_FINAL.OUT
|
||||
|
||||
ECHO NDIRTSTA automated Novell NDIR baseline > F:\NDCMP\RUN.LOG
|
||||
ECHO Date/time stamp skipped to avoid DOS prompt. >> F:\NDCMP\RUN.LOG
|
||||
ECHO. >> F:\NDCMP\RUN.LOG
|
||||
|
||||
ECHO === SETUP TEST TREE === >> F:\NDCMP\RUN.LOG
|
||||
|
||||
REM Reset test files.
|
||||
IF EXIST F:\TNDIR\ALPHA.TXT DEL F:\TNDIR\ALPHA.TXT
|
||||
IF EXIST F:\TNDIR\BETA.TXT DEL F:\TNDIR\BETA.TXT
|
||||
IF EXIST F:\TNDIR\GAMMA.DAT DEL F:\TNDIR\GAMMA.DAT
|
||||
IF EXIST F:\TNDIR\SUBDIR\SUB.TXT DEL F:\TNDIR\SUBDIR\SUB.TXT
|
||||
|
||||
IF NOT EXIST F:\TNDIR\NUL MD F:\TNDIR
|
||||
IF NOT EXIST F:\TNDIR\SUBDIR\NUL MD F:\TNDIR\SUBDIR
|
||||
|
||||
ECHO NDIR TEST ALPHA > F:\TNDIR\ALPHA.TXT
|
||||
ECHO NDIR TEST BETA > F:\TNDIR\BETA.TXT
|
||||
ECHO NDIR TEST GAMMA > F:\TNDIR\GAMMA.DAT
|
||||
ECHO NDIR SUB FILE > F:\TNDIR\SUBDIR\SUB.TXT
|
||||
|
||||
ECHO === ATTRIBUTE CLEANUP === >> F:\NDCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\TNDIR\ALPHA.TXT N >> F:\NDCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\TNDIR\BETA.TXT N >> F:\NDCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\TNDIR\GAMMA.DAT N >> F:\NDCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\TNDIR\SUBDIR\SUB.TXT N >> F:\NDCMP\RUN.LOG
|
||||
|
||||
ECHO === N01 BASIS DIRECTORY === >> F:\NDCMP\RUN.LOG
|
||||
NPUBLIC\NDIR F:\TNDIR > F:\NDCMP\OUT\N01_ROOT.OUT
|
||||
|
||||
ECHO === N02 DIRECT FILES === >> F:\NDCMP\RUN.LOG
|
||||
NPUBLIC\NDIR F:\TNDIR\ALPHA.TXT > F:\NDCMP\OUT\N02_ALFA.OUT
|
||||
NPUBLIC\NDIR F:\TNDIR\BETA.TXT > F:\NDCMP\OUT\N02_BETA.OUT
|
||||
|
||||
ECHO === N03 DATES === >> F:\NDCMP\RUN.LOG
|
||||
NPUBLIC\NDIR F:\TNDIR /DATES > F:\NDCMP\OUT\N03_DATES.OUT
|
||||
NPUBLIC\NDIR F:\TNDIR\ALPHA.TXT /DATES > F:\NDCMP\OUT\N03_ADATE.OUT
|
||||
|
||||
ECHO === N04 RIGHTS === >> F:\NDCMP\RUN.LOG
|
||||
NPUBLIC\RIGHTS F:\TNDIR > F:\NDCMP\OUT\N04_RGT.OUT
|
||||
NPUBLIC\NDIR F:\TNDIR /RIGHTS >> F:\NDCMP\OUT\N04_RGT.OUT
|
||||
NPUBLIC\NDIR F:\TNDIR\ALPHA.TXT /RIGHTS > F:\NDCMP\OUT\N04_RGTA.OUT
|
||||
|
||||
ECHO === N05 SET ATTRIBUTES === >> F:\NDCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\TNDIR\ALPHA.TXT +H >> F:\NDCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\TNDIR\BETA.TXT +RO >> F:\NDCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\TNDIR\GAMMA.DAT +Sy +A >> F:\NDCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\TNDIR\ALPHA.TXT > F:\NDCMP\OUT\N05_FLGA.OUT
|
||||
NPUBLIC\FLAG F:\TNDIR\BETA.TXT > F:\NDCMP\OUT\N05_FLGB.OUT
|
||||
NPUBLIC\FLAG F:\TNDIR\GAMMA.DAT > F:\NDCMP\OUT\N05_FLGG.OUT
|
||||
|
||||
ECHO === N06 NDIR AFTER ATTRIBUTES === >> F:\NDCMP\RUN.LOG
|
||||
NPUBLIC\NDIR F:\TNDIR > F:\NDCMP\OUT\N06_ATTR.OUT
|
||||
NPUBLIC\NDIR F:\TNDIR /DATES > F:\NDCMP\OUT\N06_ADAT.OUT
|
||||
|
||||
ECHO === N07 ATTRIBUTE FILTERS === >> F:\NDCMP\RUN.LOG
|
||||
NPUBLIC\NDIR F:\TNDIR /H > F:\NDCMP\OUT\N07_H.OUT
|
||||
NPUBLIC\NDIR F:\TNDIR /RO > F:\NDCMP\OUT\N07_RO.OUT
|
||||
NPUBLIC\NDIR F:\TNDIR /SY > F:\NDCMP\OUT\N07_SY.OUT
|
||||
NPUBLIC\NDIR F:\TNDIR /A > F:\NDCMP\OUT\N07_A.OUT
|
||||
|
||||
ECHO === N08 NOT FILTERS === >> F:\NDCMP\RUN.LOG
|
||||
NPUBLIC\NDIR F:\TNDIR /NOT H > F:\NDCMP\OUT\N08_NOTH.OUT
|
||||
NPUBLIC\NDIR F:\TNDIR /NOT RO > F:\NDCMP\OUT\N08_NOTR.OUT
|
||||
|
||||
ECHO === N09 SORT TESTS === >> F:\NDCMP\RUN.LOG
|
||||
NPUBLIC\NDIR F:\TNDIR /SORT UN > F:\NDCMP\OUT\N09_SUN.OUT
|
||||
NPUBLIC\NDIR F:\TNDIR /SORT SI > F:\NDCMP\OUT\N09_SSI.OUT
|
||||
NPUBLIC\NDIR F:\TNDIR /SORT UP > F:\NDCMP\OUT\N09_SUP.OUT
|
||||
|
||||
ECHO === N10 WILDCARDS === >> F:\NDCMP\RUN.LOG
|
||||
NPUBLIC\NDIR F:\TNDIR\*.TXT > F:\NDCMP\OUT\N10_TXT.OUT
|
||||
NPUBLIC\NDIR F:\TNDIR\*.DAT > F:\NDCMP\OUT\N10_DAT.OUT
|
||||
|
||||
ECHO === N11 FILES ONLY / DIRS ONLY === >> F:\NDCMP\RUN.LOG
|
||||
NPUBLIC\NDIR F:\TNDIR /FO > F:\NDCMP\OUT\N11_FO.OUT
|
||||
NPUBLIC\NDIR F:\TNDIR /DO > F:\NDCMP\OUT\N11_DO.OUT
|
||||
|
||||
ECHO === N12 SUBDIRECTORY TEST === >> F:\NDCMP\RUN.LOG
|
||||
NPUBLIC\NDIR F:\TNDIR /SUB > F:\NDCMP\OUT\N12_SUB.OUT
|
||||
NPUBLIC\NDIR F:\TNDIR\SUBDIR > F:\NDCMP\OUT\N12_SDIR.OUT
|
||||
|
||||
ECHO === N14 CLEANUP ATTRIBUTES === >> F:\NDCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\TNDIR\ALPHA.TXT N >> F:\NDCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\TNDIR\BETA.TXT N >> F:\NDCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\TNDIR\GAMMA.DAT N >> F:\NDCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\TNDIR\SUBDIR\SUB.TXT N >> F:\NDCMP\RUN.LOG
|
||||
NPUBLIC\NDIR F:\TNDIR > F:\NDCMP\OUT\N14_FINAL.OUT
|
||||
|
||||
ECHO === SUMMARY === > F:\NDCMP\SUMMARY.TXT
|
||||
ECHO NDIRTSTA automated Novell NDIR baseline finished. >> F:\NDCMP\SUMMARY.TXT
|
||||
ECHO. >> F:\NDCMP\SUMMARY.TXT
|
||||
ECHO Outputs are in F:\NDCMP\OUT. >> F:\NDCMP\SUMMARY.TXT
|
||||
ECHO Expected highlights: >> F:\NDCMP\SUMMARY.TXT
|
||||
ECHO - N01_ROOT lists ALPHA.TXT, BETA.TXT, GAMMA.DAT and SUBDIR. >> F:\NDCMP\SUMMARY.TXT
|
||||
ECHO - N03_DATES shows date fields. >> F:\NDCMP\SUMMARY.TXT
|
||||
ECHO - N04_RGT shows rights. >> F:\NDCMP\SUMMARY.TXT
|
||||
ECHO - N05_FLG* shows H, RO, SY/A attribute setup. >> F:\NDCMP\SUMMARY.TXT
|
||||
ECHO - N07_* filters isolate attributes. >> F:\NDCMP\SUMMARY.TXT
|
||||
ECHO - N09_* sort modes run without error. >> F:\NDCMP\SUMMARY.TXT
|
||||
ECHO - N10_TXT lists TXT files; N10_DAT lists GAMMA.DAT. >> F:\NDCMP\SUMMARY.TXT
|
||||
ECHO - N11_FO/N11_DO separate files/directories where supported. >> F:\NDCMP\SUMMARY.TXT
|
||||
ECHO - N12_SUB includes SUBDIR\SUB.TXT. >> F:\NDCMP\SUMMARY.TXT
|
||||
ECHO Optional pack results with NDIRZIP.BAT. >> F:\NDCMP\SUMMARY.TXT
|
||||
|
||||
ECHO.
|
||||
ECHO NDIRTSTA fertig.
|
||||
ECHO Ergebnisse liegen in F:\NDCMP
|
||||
ECHO Optional: NDIRZIP ausfuehren.
|
||||
ECHO.
|
||||
27
test/ndir/NDIRZIP.BAT
Normal file
27
test/ndir/NDIRZIP.BAT
Normal file
@@ -0,0 +1,27 @@
|
||||
@ECHO OFF
|
||||
REM NDIRZIP.BAT
|
||||
REM Optional packer for NDIRTSTA result files.
|
||||
REM Requires ZIP.EXE in PATH or current directory.
|
||||
|
||||
F:
|
||||
CD \NDCMP
|
||||
|
||||
IF EXIST NDIRTSTA.ZIP DEL NDIRTSTA.ZIP
|
||||
IF EXIST ZIP.LOG DEL ZIP.LOG
|
||||
|
||||
ECHO Creating NDIRTSTA.ZIP > ZIP.LOG
|
||||
ZIP -r NDIRTSTA.ZIP RUN.LOG SUMMARY.TXT 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 \TNDIR\NUL DELTREE /Y \TNDIR >> ZIP.LOG
|
||||
IF EXIST \NDIRTEST\NUL DELTREE /Y \NDIRTEST >> ZIP.LOG
|
||||
CD \
|
||||
ECHO.
|
||||
ECHO ZIP step finished.
|
||||
ECHO Check:
|
||||
ECHO F:\NDCMP\NDIRTSTA.ZIP
|
||||
ECHO F:\NDCMP\ZIP.LOG
|
||||
ECHO.
|
||||
56
test/ndir/README.md
Normal file
56
test/ndir/README.md
Normal file
@@ -0,0 +1,56 @@
|
||||
# NDIR automated test
|
||||
|
||||
Automated Novell-only baseline for `NPUBLIC\NDIR`.
|
||||
|
||||
## Run
|
||||
|
||||
```text
|
||||
NDIRTSTA
|
||||
```
|
||||
|
||||
Results:
|
||||
|
||||
```text
|
||||
F:\NDCMP\RUN.LOG
|
||||
F:\NDCMP\SUMMARY.TXT
|
||||
F:\NDCMP\OUT\*.OUT
|
||||
```
|
||||
|
||||
Optional pack:
|
||||
|
||||
```text
|
||||
NDIRZIP
|
||||
```
|
||||
|
||||
Upload:
|
||||
|
||||
```text
|
||||
F:\NDCMP\NDIRTSTA.ZIP
|
||||
```
|
||||
|
||||
Then on Linux package with server log:
|
||||
|
||||
```sh
|
||||
sudo ./mars_packtest_v3.sh ndirtsta 5 mario
|
||||
```
|
||||
|
||||
The pack helper should find `/var/mars_nwe/SYS/NDCMP/NDIRTSTA.ZIP` by search.
|
||||
|
||||
## Test tree
|
||||
|
||||
```text
|
||||
F:\TNDIR
|
||||
```
|
||||
|
||||
## Coverage
|
||||
|
||||
- basic directory and file NDIR
|
||||
- `/DATES`
|
||||
- `/RIGHTS`
|
||||
- attributes via `NPUBLIC\FLAG`
|
||||
- filters `/H`, `/RO`, `/SY`, `/A`, `/NOT H`, `/NOT RO`
|
||||
- sorts `/SORT UN`, `/SORT SI`, `/SORT UP`
|
||||
- wildcards `*.TXT`, `*.DAT`
|
||||
- `/FO`, `/DO`
|
||||
- `/SUB`
|
||||
- cleanup
|
||||
46
test/remove/README.md
Normal file
46
test/remove/README.md
Normal file
@@ -0,0 +1,46 @@
|
||||
# REMOVE baseline test
|
||||
|
||||
`RMVSTA.BAT` captures Novell `\NPUBLIC\REMOVE` behavior for trustee removal.
|
||||
|
||||
Run as `SUPERVISOR` or a user with Access Control rights:
|
||||
|
||||
```bat
|
||||
F:
|
||||
CD \
|
||||
RMVSTA
|
||||
RMVZIP
|
||||
```
|
||||
|
||||
Result directory:
|
||||
|
||||
```text
|
||||
F:\RMVCMP
|
||||
```
|
||||
|
||||
Test directory:
|
||||
|
||||
```text
|
||||
F:\RMVTEST
|
||||
```
|
||||
|
||||
The setup uses `\NPUBLIC\GRANT` to create trustees for user `MARIO`, then runs `\NPUBLIC\REMOVE` for the baseline.
|
||||
|
||||
Note: Novell `REMOVE` help names the recursive option `/Subdirs`; this test uses `/SUBDIRS`, not `/SUBDIRECTORIES`.
|
||||
|
||||
Captured cases:
|
||||
|
||||
- `D01` help / usage
|
||||
- `D02` no arguments
|
||||
- `D10` remove `USER MARIO` from a directory
|
||||
- `D11` remove `MARIO` without the explicit `USER` keyword
|
||||
- `D20` `/SUBDIRS`
|
||||
- `D21` `/FILES` on an explicit file
|
||||
- `D22` `/FILES` on all files in a directory
|
||||
- `D30` relative path from `F:\RMVTEST`
|
||||
- `D90` no trustee
|
||||
- `D91` missing user
|
||||
- `D92` missing path
|
||||
- `D93` `/FILES` and `/SUBDIRS` together
|
||||
- `D94` bad grammar
|
||||
|
||||
`RMVZIP.BAT` packages `RUN.LOG`, `SUMMARY.TXT`, `OUT`, and `SETUP`, then removes the generated `F:\RMVTEST` tree so the SYS root does not accumulate test directories.
|
||||
116
test/remove/RMVSTA.BAT
Normal file
116
test/remove/RMVSTA.BAT
Normal 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.
|
||||
25
test/remove/RMVZIP.BAT
Normal file
25
test/remove/RMVZIP.BAT
Normal file
@@ -0,0 +1,25 @@
|
||||
@ECHO OFF
|
||||
REM RMVZIP.BAT
|
||||
REM Optional packer for RMVSTA result files.
|
||||
REM Requires ZIP.EXE in PATH or current directory.
|
||||
|
||||
F:
|
||||
CD \RMVCMP
|
||||
|
||||
IF EXIST RMVSTA.ZIP DEL RMVSTA.ZIP
|
||||
IF EXIST ZIP.LOG DEL ZIP.LOG
|
||||
|
||||
ECHO Creating RMVSTA.ZIP > ZIP.LOG
|
||||
ZIP -r RMVSTA.ZIP RUN.LOG SUMMARY.TXT OUT SETUP >> 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 \RMVTEST\NUL DELTREE /Y \RMVTEST >> ZIP.LOG
|
||||
CD \
|
||||
ECHO.
|
||||
ECHO ZIP step finished.
|
||||
ECHO Check:
|
||||
ECHO F:\RMVCMP\RMVSTA.ZIP
|
||||
ECHO F:\RMVCMP\ZIP.LOG
|
||||
ECHO.
|
||||
55
test/renmove/README.md
Normal file
55
test/renmove/README.md
Normal file
@@ -0,0 +1,55 @@
|
||||
# Rename / move / delete tests
|
||||
|
||||
Automated DOS-command baseline over the NetWare redirector.
|
||||
|
||||
## Run
|
||||
|
||||
```text
|
||||
RMTSTA
|
||||
```
|
||||
|
||||
Results:
|
||||
|
||||
```text
|
||||
F:\RCMP\RUN.LOG
|
||||
F:\RCMP\SUMMARY.TXT
|
||||
F:\RCMP\PRE\*.OUT
|
||||
F:\RCMP\POST\*.OUT
|
||||
F:\RCMP\CMP\*.OUT
|
||||
```
|
||||
|
||||
Optional pack:
|
||||
|
||||
```text
|
||||
RMTZIP
|
||||
```
|
||||
|
||||
Upload:
|
||||
|
||||
```text
|
||||
F:\RCMP\RMTSTA.ZIP
|
||||
```
|
||||
|
||||
Then on Linux package with server log:
|
||||
|
||||
```sh
|
||||
sudo ./mars_packtest_v3.sh rmtsta 5 mario
|
||||
```
|
||||
|
||||
## Coverage
|
||||
|
||||
- file rename in same directory using `REN`
|
||||
- expected failure: rename to existing target
|
||||
- move-like file operation via copy+delete across directories
|
||||
- directory rename using `MOVE`
|
||||
- file delete
|
||||
- empty directory remove
|
||||
- expected failure: remove non-empty directory
|
||||
|
||||
## Syntax note
|
||||
|
||||
This client rejects directory rename with `REN`, but accepts directory rename with:
|
||||
|
||||
```text
|
||||
MOVE olddir newdir
|
||||
```
|
||||
188
test/renmove/RMTSTA.BAT
Normal file
188
test/renmove/RMTSTA.BAT
Normal file
@@ -0,0 +1,188 @@
|
||||
@ECHO OFF
|
||||
REM RMTSTA.BAT
|
||||
REM Automated file/directory rename, move, delete baseline for MARS NWE.
|
||||
REM
|
||||
REM Uses DOS commands over the NetWare redirector:
|
||||
REM MD, REN, MOVE, COPY, DEL, RD
|
||||
REM
|
||||
REM Notes:
|
||||
REM - File rename uses REN.
|
||||
REM - Directory rename uses MOVE, because this client rejects REN on dirs.
|
||||
REM - Some DOS/Novell messages may still appear on screen even when
|
||||
REM stdout is redirected. Result files are in F:\RCMP.
|
||||
REM
|
||||
REM Results:
|
||||
REM F:\RCMP\RUN.LOG
|
||||
REM F:\RCMP\SUMMARY.TXT
|
||||
REM F:\RCMP\PRE\*.OUT
|
||||
REM F:\RCMP\POST\*.OUT
|
||||
REM F:\RCMP\CMP\*.OUT
|
||||
|
||||
F:
|
||||
CD \
|
||||
|
||||
REM --- Clean generated test/result directories (contents only). ---
|
||||
IF EXIST RMTTEST\NUL DELTREE /Y RMTTEST\*.*
|
||||
IF EXIST RMTCMP\NUL DELTREE /Y RMTCMP\*.*
|
||||
|
||||
REM --- Directory setup ---
|
||||
IF NOT EXIST TRMOVE\NUL MD TRMOVE
|
||||
IF NOT EXIST TRMOVE\SRC\NUL MD TRMOVE\SRC
|
||||
IF NOT EXIST TRMOVE\SRC\SUB\NUL MD TRMOVE\SRC\SUB
|
||||
IF NOT EXIST TRMOVE\DST\NUL MD TRMOVE\DST
|
||||
IF NOT EXIST TRMOVE\DFILE\NUL MD TRMOVE\DFILE
|
||||
IF NOT EXIST TRMOVE\NEMPTY\NUL MD TRMOVE\NEMPTY
|
||||
IF NOT EXIST RCMP\NUL MD RCMP
|
||||
IF NOT EXIST RCMP\PRE\NUL MD RCMP\PRE
|
||||
IF NOT EXIST RCMP\POST\NUL MD RCMP\POST
|
||||
IF NOT EXIST RCMP\CMP\NUL MD RCMP\CMP
|
||||
|
||||
REM --- Clean result files ---
|
||||
IF EXIST F:\RCMP\RUN.LOG DEL F:\RCMP\RUN.LOG
|
||||
IF EXIST F:\RCMP\SUMMARY.TXT DEL F:\RCMP\SUMMARY.TXT
|
||||
IF EXIST F:\RCMP\ZIP.LOG DEL F:\RCMP\ZIP.LOG
|
||||
IF EXIST F:\RCMP\RMTSTA.ZIP DEL F:\RCMP\RMTSTA.ZIP
|
||||
|
||||
IF EXIST F:\RCMP\PRE\ROOT.OUT DEL F:\RCMP\PRE\ROOT.OUT
|
||||
IF EXIST F:\RCMP\PRE\SRC.OUT DEL F:\RCMP\PRE\SRC.OUT
|
||||
IF EXIST F:\RCMP\PRE\SUB.OUT DEL F:\RCMP\PRE\SUB.OUT
|
||||
IF EXIST F:\RCMP\PRE\DST.OUT DEL F:\RCMP\PRE\DST.OUT
|
||||
IF EXIST F:\RCMP\PRE\DFILE.OUT DEL F:\RCMP\PRE\DFILE.OUT
|
||||
IF EXIST F:\RCMP\PRE\DATES.OUT DEL F:\RCMP\PRE\DATES.OUT
|
||||
IF EXIST F:\RCMP\POST\ROOT.OUT DEL F:\RCMP\POST\ROOT.OUT
|
||||
IF EXIST F:\RCMP\POST\SRC.OUT DEL F:\RCMP\POST\SRC.OUT
|
||||
IF EXIST F:\RCMP\POST\SUB.OUT DEL F:\RCMP\POST\SUB.OUT
|
||||
IF EXIST F:\RCMP\POST\DST.OUT DEL F:\RCMP\POST\DST.OUT
|
||||
IF EXIST F:\RCMP\POST\DFILE.OUT DEL F:\RCMP\POST\DFILE.OUT
|
||||
IF EXIST F:\RCMP\POST\NEMPTY.OUT DEL F:\RCMP\POST\NEMPTY.OUT
|
||||
IF EXIST F:\RCMP\POST\DATES.OUT DEL F:\RCMP\POST\DATES.OUT
|
||||
IF EXIST F:\RCMP\POST\A2.OUT DEL F:\RCMP\POST\A2.OUT
|
||||
IF EXIST F:\RCMP\POST\MOVEDB.OUT DEL F:\RCMP\POST\MOVEDB.OUT
|
||||
IF EXIST F:\RCMP\CMP\ROOT.OUT DEL F:\RCMP\CMP\ROOT.OUT
|
||||
IF EXIST F:\RCMP\CMP\SRC.OUT DEL F:\RCMP\CMP\SRC.OUT
|
||||
IF EXIST F:\RCMP\CMP\SUB.OUT DEL F:\RCMP\CMP\SUB.OUT
|
||||
IF EXIST F:\RCMP\CMP\DST.OUT DEL F:\RCMP\CMP\DST.OUT
|
||||
IF EXIST F:\RCMP\CMP\DFILE.OUT DEL F:\RCMP\CMP\DFILE.OUT
|
||||
IF EXIST F:\RCMP\CMP\DATES.OUT DEL F:\RCMP\CMP\DATES.OUT
|
||||
|
||||
ECHO RMTSTA automated rename/move/delete test > F:\RCMP\RUN.LOG
|
||||
ECHO Date/time stamp skipped to avoid DOS prompt. >> F:\RCMP\RUN.LOG
|
||||
ECHO. >> F:\RCMP\RUN.LOG
|
||||
|
||||
ECHO === RESET TEST TREE === >> F:\RCMP\RUN.LOG
|
||||
|
||||
REM Delete old files individually if present.
|
||||
IF EXIST F:\TRMOVE\SRC\A.TXT DEL F:\TRMOVE\SRC\A.TXT
|
||||
IF EXIST F:\TRMOVE\SRC\A2.TXT DEL F:\TRMOVE\SRC\A2.TXT
|
||||
IF EXIST F:\TRMOVE\SRC\EXIST.TXT DEL F:\TRMOVE\SRC\EXIST.TXT
|
||||
IF EXIST F:\TRMOVE\SRC\SUB\B.TXT DEL F:\TRMOVE\SRC\SUB\B.TXT
|
||||
IF EXIST F:\TRMOVE\DST\B.TXT DEL F:\TRMOVE\DST\B.TXT
|
||||
IF EXIST F:\TRMOVE\DST\C.TXT DEL F:\TRMOVE\DST\C.TXT
|
||||
IF EXIST F:\TRMOVE\DST\DELME.TXT DEL F:\TRMOVE\DST\DELME.TXT
|
||||
IF EXIST F:\TRMOVE\DFILE\A.TXT DEL F:\TRMOVE\DFILE\A.TXT
|
||||
IF EXIST F:\TRMOVE\DFILE\B.TXT DEL F:\TRMOVE\DFILE\B.TXT
|
||||
IF EXIST F:\TRMOVE\DFILE\KEEP.TXT DEL F:\TRMOVE\DFILE\KEEP.TXT
|
||||
IF EXIST F:\TRMOVE\DMOVE\A.TXT DEL F:\TRMOVE\DMOVE\A.TXT
|
||||
IF EXIST F:\TRMOVE\DMOVE\B.TXT DEL F:\TRMOVE\DMOVE\B.TXT
|
||||
IF EXIST F:\TRMOVE\DMOVE\KEEP.TXT DEL F:\TRMOVE\DMOVE\KEEP.TXT
|
||||
IF EXIST F:\TRMOVE\NEMPTY\KEEP.TXT DEL F:\TRMOVE\NEMPTY\KEEP.TXT
|
||||
IF EXIST F:\TRMOVE\EMPTY\NUL RD F:\TRMOVE\EMPTY
|
||||
IF EXIST F:\TRMOVE\DMOVE\NUL RD F:\TRMOVE\DMOVE
|
||||
IF EXIST F:\TRMOVE\DFILE\NUL RD F:\TRMOVE\DFILE
|
||||
|
||||
REM Recreate expected directories.
|
||||
IF NOT EXIST F:\TRMOVE\SRC\NUL MD F:\TRMOVE\SRC
|
||||
IF NOT EXIST F:\TRMOVE\SRC\SUB\NUL MD F:\TRMOVE\SRC\SUB
|
||||
IF NOT EXIST F:\TRMOVE\DST\NUL MD F:\TRMOVE\DST
|
||||
IF NOT EXIST F:\TRMOVE\DFILE\NUL MD F:\TRMOVE\DFILE
|
||||
IF NOT EXIST F:\TRMOVE\NEMPTY\NUL MD F:\TRMOVE\NEMPTY
|
||||
IF NOT EXIST F:\TRMOVE\EMPTY\NUL MD F:\TRMOVE\EMPTY
|
||||
|
||||
ECHO FILE A > F:\TRMOVE\SRC\A.TXT
|
||||
ECHO EXIST TARGET > F:\TRMOVE\SRC\EXIST.TXT
|
||||
ECHO FILE B > F:\TRMOVE\SRC\SUB\B.TXT
|
||||
ECHO FILE C > F:\TRMOVE\DST\C.TXT
|
||||
ECHO DELETE ME > F:\TRMOVE\DST\DELME.TXT
|
||||
ECHO DIR A > F:\TRMOVE\DFILE\A.TXT
|
||||
ECHO DIR B > F:\TRMOVE\DFILE\B.TXT
|
||||
ECHO DIR KEEP > F:\TRMOVE\DFILE\KEEP.TXT
|
||||
ECHO KEEP > F:\TRMOVE\NEMPTY\KEEP.TXT
|
||||
|
||||
NPUBLIC\FLAG F:\TRMOVE\SRC\A.TXT N >> F:\RCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\TRMOVE\SRC\SUB\B.TXT N >> F:\RCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\TRMOVE\DST\C.TXT N >> F:\RCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\TRMOVE\DST\DELME.TXT N >> F:\RCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\TRMOVE\DFILE\A.TXT N >> F:\RCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\TRMOVE\DFILE\B.TXT N >> F:\RCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\TRMOVE\DFILE\KEEP.TXT N >> F:\RCMP\RUN.LOG
|
||||
|
||||
ECHO === PRE CAPTURE === >> F:\RCMP\RUN.LOG
|
||||
NPUBLIC\NDIR F:\TRMOVE > F:\RCMP\PRE\ROOT.OUT
|
||||
NPUBLIC\NDIR F:\TRMOVE\SRC > F:\RCMP\PRE\SRC.OUT
|
||||
NPUBLIC\NDIR F:\TRMOVE\SRC\SUB > F:\RCMP\PRE\SUB.OUT
|
||||
NPUBLIC\NDIR F:\TRMOVE\DST > F:\RCMP\PRE\DST.OUT
|
||||
NPUBLIC\NDIR F:\TRMOVE\DFILE > F:\RCMP\PRE\DFILE.OUT
|
||||
NPUBLIC\NDIR F:\TRMOVE /DATES > F:\RCMP\PRE\DATES.OUT
|
||||
|
||||
ECHO === TEST 01: rename file in same directory === >> F:\RCMP\RUN.LOG
|
||||
REN F:\TRMOVE\SRC\A.TXT A2.TXT >> F:\RCMP\RUN.LOG
|
||||
|
||||
ECHO === TEST 02: expected failure rename to existing target === >> F:\RCMP\RUN.LOG
|
||||
REN F:\TRMOVE\SRC\A2.TXT EXIST.TXT >> F:\RCMP\RUN.LOG
|
||||
|
||||
ECHO === TEST 03: move-like file operation via COPY+DEL across directories === >> F:\RCMP\RUN.LOG
|
||||
COPY F:\TRMOVE\SRC\SUB\B.TXT F:\TRMOVE\DST\B.TXT >> F:\RCMP\RUN.LOG
|
||||
DEL F:\TRMOVE\SRC\SUB\B.TXT >> F:\RCMP\RUN.LOG
|
||||
|
||||
ECHO === TEST 04: directory rename via MOVE === >> F:\RCMP\RUN.LOG
|
||||
MOVE F:\TRMOVE\DFILE F:\TRMOVE\DMOVE >> F:\RCMP\RUN.LOG
|
||||
|
||||
ECHO === TEST 05: delete file === >> F:\RCMP\RUN.LOG
|
||||
DEL F:\TRMOVE\DST\DELME.TXT >> F:\RCMP\RUN.LOG
|
||||
|
||||
ECHO === TEST 06: remove empty directory === >> F:\RCMP\RUN.LOG
|
||||
RD F:\TRMOVE\EMPTY >> F:\RCMP\RUN.LOG
|
||||
|
||||
ECHO === TEST 07: expected failure remove non-empty directory === >> F:\RCMP\RUN.LOG
|
||||
RD F:\TRMOVE\NEMPTY >> F:\RCMP\RUN.LOG
|
||||
|
||||
ECHO === POST CAPTURE === >> F:\RCMP\RUN.LOG
|
||||
NPUBLIC\NDIR F:\TRMOVE > F:\RCMP\POST\ROOT.OUT
|
||||
NPUBLIC\NDIR F:\TRMOVE\SRC > F:\RCMP\POST\SRC.OUT
|
||||
NPUBLIC\NDIR F:\TRMOVE\SRC\SUB > F:\RCMP\POST\SUB.OUT
|
||||
NPUBLIC\NDIR F:\TRMOVE\DST > F:\RCMP\POST\DST.OUT
|
||||
NPUBLIC\NDIR F:\TRMOVE\DMOVE > F:\RCMP\POST\DFILE.OUT
|
||||
NPUBLIC\NDIR F:\TRMOVE\NEMPTY > F:\RCMP\POST\NEMPTY.OUT
|
||||
NPUBLIC\NDIR F:\TRMOVE /DATES > F:\RCMP\POST\DATES.OUT
|
||||
|
||||
ECHO === COMPARE === >> F:\RCMP\RUN.LOG
|
||||
FC F:\RCMP\PRE\ROOT.OUT F:\RCMP\POST\ROOT.OUT > F:\RCMP\CMP\ROOT.OUT
|
||||
FC F:\RCMP\PRE\SRC.OUT F:\RCMP\POST\SRC.OUT > F:\RCMP\CMP\SRC.OUT
|
||||
FC F:\RCMP\PRE\SUB.OUT F:\RCMP\POST\SUB.OUT > F:\RCMP\CMP\SUB.OUT
|
||||
FC F:\RCMP\PRE\DST.OUT F:\RCMP\POST\DST.OUT > F:\RCMP\CMP\DST.OUT
|
||||
FC F:\RCMP\PRE\DFILE.OUT F:\RCMP\POST\DFILE.OUT > F:\RCMP\CMP\DFILE.OUT
|
||||
FC F:\RCMP\PRE\DATES.OUT F:\RCMP\POST\DATES.OUT > F:\RCMP\CMP\DATES.OUT
|
||||
|
||||
ECHO === DETAILED POST READBACK === >> F:\RCMP\RUN.LOG
|
||||
NPUBLIC\NDIR F:\TRMOVE\SRC\A2.TXT > F:\RCMP\POST\A2.OUT
|
||||
NPUBLIC\NDIR F:\TRMOVE\DST\B.TXT > F:\RCMP\POST\MOVEDB.OUT
|
||||
|
||||
ECHO === SUMMARY === > F:\RCMP\SUMMARY.TXT
|
||||
ECHO RMTSTA automated rename/move/delete test finished. >> F:\RCMP\SUMMARY.TXT
|
||||
ECHO. >> F:\RCMP\SUMMARY.TXT
|
||||
ECHO Expected final state: >> F:\RCMP\SUMMARY.TXT
|
||||
ECHO - SRC contains A2.TXT and EXIST.TXT. >> F:\RCMP\SUMMARY.TXT
|
||||
ECHO - SRC\SUB no longer contains B.TXT. >> F:\RCMP\SUMMARY.TXT
|
||||
ECHO - DST contains B.TXT and C.TXT, but not DELME.TXT. >> F:\RCMP\SUMMARY.TXT
|
||||
ECHO - DFILE was renamed/moved to DMOVE via MOVE. >> F:\RCMP\SUMMARY.TXT
|
||||
ECHO - EMPTY was removed. >> F:\RCMP\SUMMARY.TXT
|
||||
ECHO - NEMPTY should still exist because RD non-empty should fail. >> F:\RCMP\SUMMARY.TXT
|
||||
ECHO - Rename A2.TXT to EXIST.TXT is expected to fail. >> F:\RCMP\SUMMARY.TXT
|
||||
ECHO. >> F:\RCMP\SUMMARY.TXT
|
||||
ECHO Optional pack results with RMTZIP.BAT. >> F:\RCMP\SUMMARY.TXT
|
||||
|
||||
ECHO.
|
||||
ECHO RMTSTA fertig.
|
||||
ECHO Ergebnisse liegen in F:\RCMP
|
||||
ECHO Optional: RMTZIP ausfuehren.
|
||||
ECHO.
|
||||
28
test/renmove/RMTZIP.BAT
Normal file
28
test/renmove/RMTZIP.BAT
Normal file
@@ -0,0 +1,28 @@
|
||||
@ECHO OFF
|
||||
REM RMTZIP.BAT
|
||||
REM Optional packer for RMTSTA result files.
|
||||
REM Requires ZIP.EXE in PATH or current directory.
|
||||
|
||||
F:
|
||||
CD \RCMP
|
||||
|
||||
IF EXIST RMTSTA.ZIP DEL RMTSTA.ZIP
|
||||
IF EXIST ZIP.LOG DEL ZIP.LOG
|
||||
|
||||
ECHO Creating RMTSTA.ZIP > ZIP.LOG
|
||||
ZIP -r RMTSTA.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 \TRMOVE\NUL DELTREE /Y \TRMOVE >> ZIP.LOG
|
||||
IF EXIST \RMTTEST\NUL DELTREE /Y \RMTTEST >> ZIP.LOG
|
||||
IF EXIST \DFILE\NUL DELTREE /Y \DFILE >> ZIP.LOG
|
||||
CD \
|
||||
ECHO.
|
||||
ECHO ZIP step finished.
|
||||
ECHO Check:
|
||||
ECHO F:\RCMP\RMTSTA.ZIP
|
||||
ECHO F:\RCMP\ZIP.LOG
|
||||
ECHO.
|
||||
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.
|
||||
23
test/rights/README.md
Normal file
23
test/rights/README.md
Normal file
@@ -0,0 +1,23 @@
|
||||
# RGHTSTA - RIGHTS baseline test
|
||||
|
||||
Novell-only baseline for `RIGHTS` behavior.
|
||||
|
||||
Runs `\NPUBLIC\RIGHTS` against a small generated test tree:
|
||||
|
||||
- default/current directory from `F:\`
|
||||
- explicit directory and subdirectory paths
|
||||
- explicit file and nested file paths
|
||||
- default/current directory from inside the test directory
|
||||
- relative file and relative directory paths
|
||||
- missing directory/file paths
|
||||
- too-many-arguments and `/?` usage/help cases
|
||||
|
||||
Results are written to `F:\RGHTCMP`. Test input files are generated in `F:\RGHTEST`.
|
||||
Optional packaging is done with `RGHTZIP.BAT`.
|
||||
|
||||
This test does not use `PUBLIC` yet and does not modify trustees. It is only
|
||||
for capturing Novell `NPUBLIC\RIGHTS` output/formatting before the later
|
||||
`NPUBLIC`/`PUBLIC` comparison scripts are added.
|
||||
|
||||
|
||||
Note: commands use absolute `\NPUBLIC\RIGHTS` so relative-path tests from inside `F:\RGHTEST` do not accidentally look for `F:\RGHTEST\NPUBLIC\RIGHTS`.
|
||||
87
test/rights/RGHTSTA.BAT
Normal file
87
test/rights/RGHTSTA.BAT
Normal file
@@ -0,0 +1,87 @@
|
||||
@ECHO OFF
|
||||
REM RGHTSTA.BAT
|
||||
REM Automated RIGHTS baseline test for MARS NWE.
|
||||
REM
|
||||
REM Uses \NPUBLIC\RIGHTS as Novell baseline for currently implemented tool behavior.
|
||||
REM This test is read-only from the RIGHTS tool point of view. It only creates
|
||||
REM a small local test tree so directory, file, relative, current-directory,
|
||||
REM missing-path, and usage output can be captured.
|
||||
REM
|
||||
REM Result tree:
|
||||
REM F:\RGHTCMP
|
||||
REM Test tree:
|
||||
REM F:\RGHTEST
|
||||
|
||||
F:
|
||||
CD \
|
||||
|
||||
REM --- Clean generated test/result directories (contents only). ---
|
||||
IF EXIST RGHTEST\NUL DELTREE /Y RGHTEST\*.*
|
||||
IF EXIST RGHTCMP\NUL DELTREE /Y RGHTCMP\*.*
|
||||
|
||||
IF NOT EXIST RGHTEST\NUL MD RGHTEST
|
||||
IF NOT EXIST RGHTEST\SUBDIR\NUL MD RGHTEST\SUBDIR
|
||||
IF NOT EXIST RGHTCMP\NUL MD RGHTCMP
|
||||
IF NOT EXIST RGHTCMP\OUT\NUL MD RGHTCMP\OUT
|
||||
|
||||
ECHO RIGHTS ROOT FILE > F:\RGHTEST\FILE.TXT
|
||||
ECHO RIGHTS INNER FILE > F:\RGHTEST\SUBDIR\INNER.TXT
|
||||
|
||||
ECHO RGHTSTA RIGHTS baseline test > F:\RGHTCMP\RUN.LOG
|
||||
ECHO Creates F:\RGHTEST and captures \NPUBLIC\RIGHTS output. >> F:\RGHTCMP\RUN.LOG
|
||||
ECHO. >> F:\RGHTCMP\RUN.LOG
|
||||
|
||||
ECHO === D01 default/current directory from F:\ === >> F:\RGHTCMP\RUN.LOG
|
||||
\NPUBLIC\RIGHTS > F:\RGHTCMP\OUT\D01_CURRENT_ROOT.OUT
|
||||
|
||||
ECHO === D02 explicit test directory === >> F:\RGHTCMP\RUN.LOG
|
||||
\NPUBLIC\RIGHTS F:\RGHTEST > F:\RGHTCMP\OUT\D02_TESTDIR.OUT
|
||||
|
||||
ECHO === D03 explicit subdirectory === >> F:\RGHTCMP\RUN.LOG
|
||||
\NPUBLIC\RIGHTS F:\RGHTEST\SUBDIR > F:\RGHTCMP\OUT\D03_SUBDIR.OUT
|
||||
|
||||
ECHO === D04 explicit file === >> F:\RGHTCMP\RUN.LOG
|
||||
\NPUBLIC\RIGHTS F:\RGHTEST\FILE.TXT > F:\RGHTCMP\OUT\D04_FILE.OUT
|
||||
|
||||
ECHO === D05 explicit nested file === >> F:\RGHTCMP\RUN.LOG
|
||||
\NPUBLIC\RIGHTS F:\RGHTEST\SUBDIR\INNER.TXT > F:\RGHTCMP\OUT\D05_INNER_FILE.OUT
|
||||
|
||||
ECHO === D06 default/current directory from F:\RGHTEST === >> F:\RGHTCMP\RUN.LOG
|
||||
CD \RGHTEST
|
||||
\NPUBLIC\RIGHTS > F:\RGHTCMP\OUT\D06_CURRENT_TESTDIR.OUT
|
||||
|
||||
ECHO === D07 relative file from F:\RGHTEST === >> F:\RGHTCMP\RUN.LOG
|
||||
\NPUBLIC\RIGHTS FILE.TXT > F:\RGHTCMP\OUT\D07_REL_FILE.OUT
|
||||
|
||||
ECHO === D08 relative subdir from F:\RGHTEST === >> F:\RGHTCMP\RUN.LOG
|
||||
\NPUBLIC\RIGHTS SUBDIR > F:\RGHTCMP\OUT\D08_REL_SUBDIR.OUT
|
||||
|
||||
CD \
|
||||
|
||||
ECHO === D90 missing directory/path === >> F:\RGHTCMP\RUN.LOG
|
||||
\NPUBLIC\RIGHTS F:\RGHTEST\MISSING > F:\RGHTCMP\OUT\D90_MISSING_DIR.OUT
|
||||
|
||||
ECHO === D91 missing file/path === >> F:\RGHTCMP\RUN.LOG
|
||||
\NPUBLIC\RIGHTS F:\RGHTEST\NOFILE.TXT > F:\RGHTCMP\OUT\D91_MISSING_FILE.OUT
|
||||
|
||||
ECHO === D98 too many arguments === >> F:\RGHTCMP\RUN.LOG
|
||||
\NPUBLIC\RIGHTS F:\RGHTEST EXTRA > F:\RGHTCMP\OUT\D98_TOO_MANY.OUT
|
||||
|
||||
ECHO === D99 usage/help === >> F:\RGHTCMP\RUN.LOG
|
||||
\NPUBLIC\RIGHTS /? > F:\RGHTCMP\OUT\D99_HELP.OUT
|
||||
|
||||
ECHO === SUMMARY === > F:\RGHTCMP\SUMMARY.TXT
|
||||
ECHO RGHTSTA RIGHTS baseline finished. >> F:\RGHTCMP\SUMMARY.TXT
|
||||
ECHO. >> F:\RGHTCMP\SUMMARY.TXT
|
||||
ECHO Expected: >> F:\RGHTCMP\SUMMARY.TXT
|
||||
ECHO - D01/D02/D03/D06/D08 capture directory rights formatting. >> F:\RGHTCMP\SUMMARY.TXT
|
||||
ECHO - D04/D05/D07 capture file rights formatting. >> F:\RGHTCMP\SUMMARY.TXT
|
||||
ECHO - D07/D08 capture relative path behavior. >> F:\RGHTCMP\SUMMARY.TXT
|
||||
ECHO - D90/D91 capture missing-path errors. >> F:\RGHTCMP\SUMMARY.TXT
|
||||
ECHO - D98/D99 capture usage/help behavior. >> F:\RGHTCMP\SUMMARY.TXT
|
||||
ECHO. >> F:\RGHTCMP\SUMMARY.TXT
|
||||
ECHO Optional: RGHTZIP ausfuehren. >> F:\RGHTCMP\SUMMARY.TXT
|
||||
|
||||
ECHO RGHTSTA fertig.
|
||||
ECHO Ergebnisse liegen in F:\RGHTCMP
|
||||
ECHO Optional: RGHTZIP ausfuehren.
|
||||
26
test/rights/RGHTZIP.BAT
Normal file
26
test/rights/RGHTZIP.BAT
Normal file
@@ -0,0 +1,26 @@
|
||||
@ECHO OFF
|
||||
REM RGHTZIP.BAT
|
||||
REM Optional packer for RGHTSTA result files.
|
||||
REM Requires ZIP.EXE in PATH or current directory.
|
||||
|
||||
F:
|
||||
CD \RGHTCMP
|
||||
|
||||
IF EXIST RGHTSTA.ZIP DEL RGHTSTA.ZIP
|
||||
IF EXIST ZIP.LOG DEL ZIP.LOG
|
||||
|
||||
ECHO Creating RGHTSTA.ZIP > ZIP.LOG
|
||||
ZIP -r RGHTSTA.ZIP RUN.LOG SUMMARY.TXT 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 \RGHTEST\NUL DELTREE /Y \RGHTEST >> ZIP.LOG
|
||||
CD \
|
||||
ECHO.
|
||||
ECHO ZIP step finished.
|
||||
ECHO Check:
|
||||
ECHO F:\RGHTCMP\RGHTSTA.ZIP
|
||||
ECHO F:\RGHTCMP\ZIP.LOG
|
||||
ECHO.
|
||||
76
test/rightsuser/README.md
Normal file
76
test/rightsuser/README.md
Normal file
@@ -0,0 +1,76 @@
|
||||
# Rights user / trustee practical matrix test
|
||||
|
||||
This test checks whether trustee rights granted to `MARIO` actually control
|
||||
real DOS operations. It also contains a rename-rights matrix.
|
||||
|
||||
## Files
|
||||
|
||||
| File | Run as | Purpose |
|
||||
| --- | --- | --- |
|
||||
| `RUTPRE.BAT` | SUPERVISOR | Create test tree and grant rights to MARIO. |
|
||||
| `RUTMARIO.BAT` | MARIO | Perform real operations. |
|
||||
| `RUTPOST.BAT` | SUPERVISOR | Capture final state and summary. |
|
||||
| `RUTZIP.BAT` | SUPERVISOR | Pack results into `RUTSTA.ZIP`. |
|
||||
|
||||
## Flow
|
||||
|
||||
```text
|
||||
Login SUPERVISOR
|
||||
RUTPRE
|
||||
|
||||
Logout / Login MARIO
|
||||
RUTMARIO
|
||||
|
||||
Logout / Login SUPERVISOR
|
||||
RUTPOST
|
||||
RUTZIP
|
||||
```
|
||||
|
||||
Result ZIP:
|
||||
|
||||
```text
|
||||
F:\RUCMP\RUTSTA.ZIP
|
||||
```
|
||||
|
||||
Linux package with server log:
|
||||
|
||||
```sh
|
||||
sudo ./mars_packtest_v3.sh rutsta 5 mario
|
||||
```
|
||||
|
||||
## Rename matrix
|
||||
|
||||
The previous run showed rename failing with `R W M F` while ALL rights worked.
|
||||
This version creates four directories:
|
||||
|
||||
```text
|
||||
MOD1 = R W M F
|
||||
MOD2 = R W C M F
|
||||
MOD3 = R W E M F
|
||||
MOD4 = R W C E M F
|
||||
```
|
||||
|
||||
`RUTMARIO.BAT` tries:
|
||||
|
||||
```text
|
||||
REN F:\RUTEST\MODx\M.TXT M2.TXT
|
||||
```
|
||||
|
||||
The result is written to:
|
||||
|
||||
```text
|
||||
F:\RUCMP\MARIO\U06.OUT
|
||||
```
|
||||
|
||||
## Other coverage
|
||||
|
||||
- R/F read + file scan
|
||||
- R/F/C create
|
||||
- R/W/F write/append
|
||||
- R/F/E erase
|
||||
- F only directory scan
|
||||
- R/F/A access-control test
|
||||
- R/W/C/E/M/F/A all-rights operation set
|
||||
|
||||
`RUTPRE.BAT` now also grants MARIO write/create rights to `F:\RUCMP\MARIO`,
|
||||
so the `Uxx.OUT` files should be created.
|
||||
82
test/rightsuser/RUTMARIO.BAT
Normal file
82
test/rightsuser/RUTMARIO.BAT
Normal file
@@ -0,0 +1,82 @@
|
||||
@ECHO OFF
|
||||
REM RUTMARIO.BAT
|
||||
REM Rights User Test actions.
|
||||
REM
|
||||
REM Run as MARIO.
|
||||
REM Writes result files to F:\RUCMP\MARIO.
|
||||
|
||||
F:
|
||||
CD \
|
||||
|
||||
ECHO === RUTMARIO actions as normal user === >> F:\RUCMP\RUN.LOG
|
||||
|
||||
ECHO === U01 RONLY read/list should work === > F:\RUCMP\MARIO\U01.OUT
|
||||
TYPE F:\RUTEST\RONLY\READ.TXT >> F:\RUCMP\MARIO\U01.OUT
|
||||
NPUBLIC\NDIR F:\RUTEST\RONLY >> F:\RUCMP\MARIO\U01.OUT
|
||||
|
||||
ECHO === U02 RONLY create should fail === > F:\RUCMP\MARIO\U02.OUT
|
||||
ECHO SHOULD FAIL > F:\RUTEST\RONLY\NEW.TXT
|
||||
IF EXIST F:\RUTEST\RONLY\NEW.TXT ECHO UNEXPECTED: NEW.TXT EXISTS >> F:\RUCMP\MARIO\U02.OUT
|
||||
IF NOT EXIST F:\RUTEST\RONLY\NEW.TXT ECHO OK: NEW.TXT not created >> F:\RUCMP\MARIO\U02.OUT
|
||||
|
||||
ECHO === U03 CREATE create should work === > F:\RUCMP\MARIO\U03.OUT
|
||||
ECHO CREATE BY MARIO > F:\RUTEST\CREATE\NEW.TXT
|
||||
IF EXIST F:\RUTEST\CREATE\NEW.TXT ECHO OK: CREATE\NEW.TXT exists >> F:\RUCMP\MARIO\U03.OUT
|
||||
IF NOT EXIST F:\RUTEST\CREATE\NEW.TXT ECHO FAIL: CREATE\NEW.TXT missing >> F:\RUCMP\MARIO\U03.OUT
|
||||
NPUBLIC\NDIR F:\RUTEST\CREATE >> F:\RUCMP\MARIO\U03.OUT
|
||||
|
||||
ECHO === U04 WRITE append should work === > F:\RUCMP\MARIO\U04.OUT
|
||||
ECHO APPEND BY MARIO >> F:\RUTEST\WRITE\W.TXT
|
||||
TYPE F:\RUTEST\WRITE\W.TXT >> F:\RUCMP\MARIO\U04.OUT
|
||||
|
||||
ECHO === U05 ERASE delete should work === > F:\RUCMP\MARIO\U05.OUT
|
||||
DEL F:\RUTEST\ERASE\E.TXT
|
||||
IF EXIST F:\RUTEST\ERASE\E.TXT ECHO FAIL: ERASE\E.TXT still exists >> F:\RUCMP\MARIO\U05.OUT
|
||||
IF NOT EXIST F:\RUTEST\ERASE\E.TXT ECHO OK: ERASE\E.TXT deleted >> F:\RUCMP\MARIO\U05.OUT
|
||||
|
||||
ECHO === U06 MODIFY RENAME MATRIX === > F:\RUCMP\MARIO\U06.OUT
|
||||
|
||||
ECHO --- MOD1 rights R W M F --- >> F:\RUCMP\MARIO\U06.OUT
|
||||
REN F:\RUTEST\MOD1\M.TXT M2.TXT
|
||||
IF EXIST F:\RUTEST\MOD1\M2.TXT ECHO MOD1 OK: M2.TXT exists >> F:\RUCMP\MARIO\U06.OUT
|
||||
IF NOT EXIST F:\RUTEST\MOD1\M2.TXT ECHO MOD1 FAIL: M2.TXT missing >> F:\RUCMP\MARIO\U06.OUT
|
||||
NPUBLIC\NDIR F:\RUTEST\MOD1 >> F:\RUCMP\MARIO\U06.OUT
|
||||
|
||||
ECHO --- MOD2 rights R W C M F --- >> F:\RUCMP\MARIO\U06.OUT
|
||||
REN F:\RUTEST\MOD2\M.TXT M2.TXT
|
||||
IF EXIST F:\RUTEST\MOD2\M2.TXT ECHO MOD2 OK: M2.TXT exists >> F:\RUCMP\MARIO\U06.OUT
|
||||
IF NOT EXIST F:\RUTEST\MOD2\M2.TXT ECHO MOD2 FAIL: M2.TXT missing >> F:\RUCMP\MARIO\U06.OUT
|
||||
NPUBLIC\NDIR F:\RUTEST\MOD2 >> F:\RUCMP\MARIO\U06.OUT
|
||||
|
||||
ECHO --- MOD3 rights R W E M F --- >> F:\RUCMP\MARIO\U06.OUT
|
||||
REN F:\RUTEST\MOD3\M.TXT M2.TXT
|
||||
IF EXIST F:\RUTEST\MOD3\M2.TXT ECHO MOD3 OK: M2.TXT exists >> F:\RUCMP\MARIO\U06.OUT
|
||||
IF NOT EXIST F:\RUTEST\MOD3\M2.TXT ECHO MOD3 FAIL: M2.TXT missing >> F:\RUCMP\MARIO\U06.OUT
|
||||
NPUBLIC\NDIR F:\RUTEST\MOD3 >> F:\RUCMP\MARIO\U06.OUT
|
||||
|
||||
ECHO --- MOD4 rights R W C E M F --- >> F:\RUCMP\MARIO\U06.OUT
|
||||
REN F:\RUTEST\MOD4\M.TXT M2.TXT
|
||||
IF EXIST F:\RUTEST\MOD4\M2.TXT ECHO MOD4 OK: M2.TXT exists >> F:\RUCMP\MARIO\U06.OUT
|
||||
IF NOT EXIST F:\RUTEST\MOD4\M2.TXT ECHO MOD4 FAIL: M2.TXT missing >> F:\RUCMP\MARIO\U06.OUT
|
||||
NPUBLIC\NDIR F:\RUTEST\MOD4 >> F:\RUCMP\MARIO\U06.OUT
|
||||
|
||||
ECHO === U07 SCAN list should work, read may fail === > F:\RUCMP\MARIO\U07.OUT
|
||||
NPUBLIC\NDIR F:\RUTEST\SCAN >> F:\RUCMP\MARIO\U07.OUT
|
||||
TYPE F:\RUTEST\SCAN\S.TXT >> F:\RUCMP\MARIO\U07.OUT
|
||||
|
||||
ECHO === U08 ACCESS rights display/change attempt === > F:\RUCMP\MARIO\U08.OUT
|
||||
NPUBLIC\RIGHTS F:\RUTEST\ACCESS >> F:\RUCMP\MARIO\U08.OUT
|
||||
NPUBLIC\GRANT R F FOR F:\RUTEST\ACCESS TO USER MARIO >> F:\RUCMP\MARIO\U08.OUT
|
||||
NPUBLIC\RIGHTS F:\RUTEST\ACCESS >> F:\RUCMP\MARIO\U08.OUT
|
||||
|
||||
ECHO === U09 ALL all operations should work === > F:\RUCMP\MARIO\U09.OUT
|
||||
TYPE F:\RUTEST\ALL\ALL.TXT >> F:\RUCMP\MARIO\U09.OUT
|
||||
ECHO ALL NEW BY MARIO > F:\RUTEST\ALL\NEW.TXT
|
||||
REN F:\RUTEST\ALL\ALL.TXT ALL2.TXT
|
||||
DEL F:\RUTEST\ALL\NEW.TXT
|
||||
NPUBLIC\NDIR F:\RUTEST\ALL >> F:\RUCMP\MARIO\U09.OUT
|
||||
|
||||
NPUBLIC\NDIR F:\RUTEST /RIGHTS > F:\RUCMP\MARIO\ROOTRGHT.OUT
|
||||
|
||||
ECHO === RUTMARIO fertig ===
|
||||
ECHO Jetzt wieder als SUPERVISOR einloggen und RUTPOST ausfuehren.
|
||||
55
test/rightsuser/RUTPOST.BAT
Normal file
55
test/rightsuser/RUTPOST.BAT
Normal file
@@ -0,0 +1,55 @@
|
||||
@ECHO OFF
|
||||
REM RUTPOST.BAT
|
||||
REM Rights User Test POST.
|
||||
REM
|
||||
REM Run as SUPERVISOR after RUTMARIO.BAT.
|
||||
|
||||
F:
|
||||
CD \
|
||||
|
||||
ECHO === RUTPOST supervisor readback === >> F:\RUCMP\RUN.LOG
|
||||
|
||||
NPUBLIC\NDIR F:\RUTEST > F:\RUCMP\POST\ROOT.OUT
|
||||
NPUBLIC\NDIR F:\RUTEST /RIGHTS > F:\RUCMP\POST\ROOTRGHT.OUT
|
||||
NPUBLIC\NDIR F:\RUTEST\RONLY > F:\RUCMP\POST\RONLY.OUT
|
||||
NPUBLIC\NDIR F:\RUTEST\CREATE > F:\RUCMP\POST\CREATE.OUT
|
||||
NPUBLIC\NDIR F:\RUTEST\WRITE > F:\RUCMP\POST\WRITE.OUT
|
||||
NPUBLIC\NDIR F:\RUTEST\ERASE > F:\RUCMP\POST\ERASE.OUT
|
||||
NPUBLIC\NDIR F:\RUTEST\SCAN > F:\RUCMP\POST\SCAN.OUT
|
||||
NPUBLIC\NDIR F:\RUTEST\ACCESS > F:\RUCMP\POST\ACCESS.OUT
|
||||
NPUBLIC\NDIR F:\RUTEST\ALL > F:\RUCMP\POST\ALL.OUT
|
||||
NPUBLIC\NDIR F:\RUTEST\MOD1 > F:\RUCMP\POST\MOD1.OUT
|
||||
NPUBLIC\NDIR F:\RUTEST\MOD2 > F:\RUCMP\POST\MOD2.OUT
|
||||
NPUBLIC\NDIR F:\RUTEST\MOD3 > F:\RUCMP\POST\MOD3.OUT
|
||||
NPUBLIC\NDIR F:\RUTEST\MOD4 > F:\RUCMP\POST\MOD4.OUT
|
||||
|
||||
NPUBLIC\RIGHTS F:\RUTEST\MOD1 > F:\RUCMP\POST\RMOD1.OUT
|
||||
NPUBLIC\RIGHTS F:\RUTEST\MOD2 > F:\RUCMP\POST\RMOD2.OUT
|
||||
NPUBLIC\RIGHTS F:\RUTEST\MOD3 > F:\RUCMP\POST\RMOD3.OUT
|
||||
NPUBLIC\RIGHTS F:\RUTEST\MOD4 > F:\RUCMP\POST\RMOD4.OUT
|
||||
|
||||
FC F:\RUCMP\PRE\ROOT.OUT F:\RUCMP\POST\ROOT.OUT > F:\RUCMP\CMP\ROOT.OUT
|
||||
FC F:\RUCMP\PRE\ROOTRGHT.OUT F:\RUCMP\POST\ROOTRGHT.OUT > F:\RUCMP\CMP\ROOTRGHT.OUT
|
||||
|
||||
ECHO === SUMMARY === > F:\RUCMP\SUMMARY.TXT
|
||||
ECHO RUTSTA rights-user matrix test finished. >> F:\RUCMP\SUMMARY.TXT
|
||||
ECHO. >> F:\RUCMP\SUMMARY.TXT
|
||||
ECHO Expected high-level results: >> F:\RUCMP\SUMMARY.TXT
|
||||
ECHO - RONLY: read/list OK, create should fail. >> F:\RUCMP\SUMMARY.TXT
|
||||
ECHO - CREATE: create NEW.TXT should work. >> F:\RUCMP\SUMMARY.TXT
|
||||
ECHO - WRITE: append to W.TXT should work. >> F:\RUCMP\SUMMARY.TXT
|
||||
ECHO - ERASE: E.TXT should be deleted. >> F:\RUCMP\SUMMARY.TXT
|
||||
ECHO - MOD1 R W M F: previous baseline, likely rename fail. >> F:\RUCMP\SUMMARY.TXT
|
||||
ECHO - MOD2 R W C M F: tests whether C is needed for rename. >> F:\RUCMP\SUMMARY.TXT
|
||||
ECHO - MOD3 R W E M F: tests whether E is needed for rename. >> F:\RUCMP\SUMMARY.TXT
|
||||
ECHO - MOD4 R W C E M F: tests C+E with M. >> F:\RUCMP\SUMMARY.TXT
|
||||
ECHO - SCAN: NDIR should show file; TYPE may fail because R was not granted. >> F:\RUCMP\SUMMARY.TXT
|
||||
ECHO - ACCESS: RIGHTS/GRANT behavior recorded in MARIO\U08.OUT. >> F:\RUCMP\SUMMARY.TXT
|
||||
ECHO - ALL: read/create/rename/delete should work. >> F:\RUCMP\SUMMARY.TXT
|
||||
ECHO. >> F:\RUCMP\SUMMARY.TXT
|
||||
ECHO Review F:\RUCMP\MARIO\U06.OUT for rename matrix. >> F:\RUCMP\SUMMARY.TXT
|
||||
ECHO Optional pack results with RUTZIP.BAT. >> F:\RUCMP\SUMMARY.TXT
|
||||
|
||||
ECHO === RUTPOST fertig ===
|
||||
ECHO Ergebnisse liegen in F:\RUCMP
|
||||
ECHO Optional: RUTZIP ausfuehren.
|
||||
142
test/rightsuser/RUTPRE.BAT
Normal file
142
test/rightsuser/RUTPRE.BAT
Normal file
@@ -0,0 +1,142 @@
|
||||
@ECHO OFF
|
||||
REM RUTPRE.BAT
|
||||
REM Rights User Test PREP.
|
||||
REM
|
||||
REM Run as SUPERVISOR.
|
||||
REM Creates test tree and grants selected trustee rights to user MARIO.
|
||||
REM
|
||||
REM Test tree:
|
||||
REM F:\RUTEST
|
||||
REM
|
||||
REM Results:
|
||||
REM F:\RUCMP\PRE\*.OUT
|
||||
REM F:\RUCMP\RUN.LOG
|
||||
|
||||
F:
|
||||
CD \
|
||||
|
||||
REM --- Clean generated test/result directories (contents only). ---
|
||||
IF EXIST RUTEST\NUL DELTREE /Y RUTEST\*.*
|
||||
IF EXIST RUCMP\NUL DELTREE /Y RUCMP\*.*
|
||||
|
||||
IF NOT EXIST RUTEST\NUL MD RUTEST
|
||||
IF NOT EXIST RUTEST\RONLY\NUL MD RUTEST\RONLY
|
||||
IF NOT EXIST RUTEST\CREATE\NUL MD RUTEST\CREATE
|
||||
IF NOT EXIST RUTEST\WRITE\NUL MD RUTEST\WRITE
|
||||
IF NOT EXIST RUTEST\ERASE\NUL MD RUTEST\ERASE
|
||||
IF NOT EXIST RUTEST\SCAN\NUL MD RUTEST\SCAN
|
||||
IF NOT EXIST RUTEST\ACCESS\NUL MD RUTEST\ACCESS
|
||||
IF NOT EXIST RUTEST\ALL\NUL MD RUTEST\ALL
|
||||
IF NOT EXIST RUTEST\MOD1\NUL MD RUTEST\MOD1
|
||||
IF NOT EXIST RUTEST\MOD2\NUL MD RUTEST\MOD2
|
||||
IF NOT EXIST RUTEST\MOD3\NUL MD RUTEST\MOD3
|
||||
IF NOT EXIST RUTEST\MOD4\NUL MD RUTEST\MOD4
|
||||
IF NOT EXIST RUCMP\NUL MD RUCMP
|
||||
IF NOT EXIST RUCMP\PRE\NUL MD RUCMP\PRE
|
||||
IF NOT EXIST RUCMP\MARIO\NUL MD RUCMP\MARIO
|
||||
IF NOT EXIST RUCMP\POST\NUL MD RUCMP\POST
|
||||
IF NOT EXIST RUCMP\CMP\NUL MD RUCMP\CMP
|
||||
|
||||
IF EXIST F:\RUCMP\RUN.LOG DEL F:\RUCMP\RUN.LOG
|
||||
IF EXIST F:\RUCMP\SUMMARY.TXT DEL F:\RUCMP\SUMMARY.TXT
|
||||
IF EXIST F:\RUCMP\RUTSTA.ZIP DEL F:\RUCMP\RUTSTA.ZIP
|
||||
IF EXIST F:\RUCMP\ZIP.LOG DEL F:\RUCMP\ZIP.LOG
|
||||
|
||||
IF EXIST F:\RUCMP\PRE\*.OUT DEL F:\RUCMP\PRE\*.OUT
|
||||
IF EXIST F:\RUCMP\MARIO\*.OUT DEL F:\RUCMP\MARIO\*.OUT
|
||||
IF EXIST F:\RUCMP\POST\*.OUT DEL F:\RUCMP\POST\*.OUT
|
||||
IF EXIST F:\RUCMP\CMP\*.OUT DEL F:\RUCMP\CMP\*.OUT
|
||||
|
||||
ECHO RUTPRE rights user test setup > F:\RUCMP\RUN.LOG
|
||||
ECHO Run this as SUPERVISOR. >> F:\RUCMP\RUN.LOG
|
||||
ECHO. >> F:\RUCMP\RUN.LOG
|
||||
|
||||
REM Reset old files.
|
||||
IF EXIST F:\RUTEST\RONLY\READ.TXT DEL F:\RUTEST\RONLY\READ.TXT
|
||||
IF EXIST F:\RUTEST\RONLY\NEW.TXT DEL F:\RUTEST\RONLY\NEW.TXT
|
||||
IF EXIST F:\RUTEST\CREATE\BASE.TXT DEL F:\RUTEST\CREATE\BASE.TXT
|
||||
IF EXIST F:\RUTEST\CREATE\NEW.TXT DEL F:\RUTEST\CREATE\NEW.TXT
|
||||
IF EXIST F:\RUTEST\WRITE\W.TXT DEL F:\RUTEST\WRITE\W.TXT
|
||||
IF EXIST F:\RUTEST\ERASE\E.TXT DEL F:\RUTEST\ERASE\E.TXT
|
||||
IF EXIST F:\RUTEST\SCAN\S.TXT DEL F:\RUTEST\SCAN\S.TXT
|
||||
IF EXIST F:\RUTEST\ACCESS\A.TXT DEL F:\RUTEST\ACCESS\A.TXT
|
||||
IF EXIST F:\RUTEST\ALL\ALL.TXT DEL F:\RUTEST\ALL\ALL.TXT
|
||||
IF EXIST F:\RUTEST\ALL\NEW.TXT DEL F:\RUTEST\ALL\NEW.TXT
|
||||
IF EXIST F:\RUTEST\ALL\ALL2.TXT DEL F:\RUTEST\ALL\ALL2.TXT
|
||||
IF EXIST F:\RUTEST\MOD1\M.TXT DEL F:\RUTEST\MOD1\M.TXT
|
||||
IF EXIST F:\RUTEST\MOD1\M2.TXT DEL F:\RUTEST\MOD1\M2.TXT
|
||||
IF EXIST F:\RUTEST\MOD2\M.TXT DEL F:\RUTEST\MOD2\M.TXT
|
||||
IF EXIST F:\RUTEST\MOD2\M2.TXT DEL F:\RUTEST\MOD2\M2.TXT
|
||||
IF EXIST F:\RUTEST\MOD3\M.TXT DEL F:\RUTEST\MOD3\M.TXT
|
||||
IF EXIST F:\RUTEST\MOD3\M2.TXT DEL F:\RUTEST\MOD3\M2.TXT
|
||||
IF EXIST F:\RUTEST\MOD4\M.TXT DEL F:\RUTEST\MOD4\M2.TXT
|
||||
IF EXIST F:\RUTEST\MOD4\M.TXT DEL F:\RUTEST\MOD4\M.TXT
|
||||
IF EXIST F:\RUTEST\MOD4\M2.TXT DEL F:\RUTEST\MOD4\M2.TXT
|
||||
|
||||
ECHO READ ONLY FILE > F:\RUTEST\RONLY\READ.TXT
|
||||
ECHO CREATE TEST BASE > F:\RUTEST\CREATE\BASE.TXT
|
||||
ECHO WRITE TEST > F:\RUTEST\WRITE\W.TXT
|
||||
ECHO ERASE TEST > F:\RUTEST\ERASE\E.TXT
|
||||
ECHO SCAN TEST > F:\RUTEST\SCAN\S.TXT
|
||||
ECHO ACCESS TEST > F:\RUTEST\ACCESS\A.TXT
|
||||
ECHO ALL TEST > F:\RUTEST\ALL\ALL.TXT
|
||||
ECHO MOD1 TEST > F:\RUTEST\MOD1\M.TXT
|
||||
ECHO MOD2 TEST > F:\RUTEST\MOD2\M.TXT
|
||||
ECHO MOD3 TEST > F:\RUTEST\MOD3\M.TXT
|
||||
ECHO MOD4 TEST > F:\RUTEST\MOD4\M.TXT
|
||||
|
||||
NPUBLIC\FLAG F:\RUTEST\RONLY\READ.TXT N >> F:\RUCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\RUTEST\CREATE\BASE.TXT N >> F:\RUCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\RUTEST\WRITE\W.TXT N >> F:\RUCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\RUTEST\ERASE\E.TXT N >> F:\RUCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\RUTEST\SCAN\S.TXT N >> F:\RUCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\RUTEST\ACCESS\A.TXT N >> F:\RUCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\RUTEST\ALL\ALL.TXT N >> F:\RUCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\RUTEST\MOD1\M.TXT N >> F:\RUCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\RUTEST\MOD2\M.TXT N >> F:\RUCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\RUTEST\MOD3\M.TXT N >> F:\RUCMP\RUN.LOG
|
||||
NPUBLIC\FLAG F:\RUTEST\MOD4\M.TXT N >> F:\RUCMP\RUN.LOG
|
||||
|
||||
REM Grant result-output rights, otherwise MARIO cannot create Uxx.OUT.
|
||||
ECHO === GRANT RESULT DIR RIGHTS === >> F:\RUCMP\RUN.LOG
|
||||
NPUBLIC\GRANT R W C E M F FOR F:\RUCMP TO USER MARIO >> F:\RUCMP\RUN.LOG
|
||||
NPUBLIC\GRANT R W C E M F FOR F:\RUCMP\MARIO TO USER MARIO >> F:\RUCMP\RUN.LOG
|
||||
|
||||
REM Grant trustee rights to MARIO.
|
||||
ECHO === GRANT TEST RIGHTS === >> F:\RUCMP\RUN.LOG
|
||||
NPUBLIC\GRANT R F FOR F:\RUTEST\RONLY TO USER MARIO >> F:\RUCMP\RUN.LOG
|
||||
NPUBLIC\GRANT R F C FOR F:\RUTEST\CREATE TO USER MARIO >> F:\RUCMP\RUN.LOG
|
||||
NPUBLIC\GRANT R W F FOR F:\RUTEST\WRITE TO USER MARIO >> F:\RUCMP\RUN.LOG
|
||||
NPUBLIC\GRANT R F E FOR F:\RUTEST\ERASE TO USER MARIO >> F:\RUCMP\RUN.LOG
|
||||
NPUBLIC\GRANT F FOR F:\RUTEST\SCAN TO USER MARIO >> F:\RUCMP\RUN.LOG
|
||||
NPUBLIC\GRANT R F A FOR F:\RUTEST\ACCESS TO USER MARIO >> F:\RUCMP\RUN.LOG
|
||||
NPUBLIC\GRANT R W C E M F A FOR F:\RUTEST\ALL TO USER MARIO >> F:\RUCMP\RUN.LOG
|
||||
|
||||
REM Rename/modify matrix:
|
||||
REM MOD1 = known failing baseline from previous run: R W M F
|
||||
REM MOD2 = add C
|
||||
REM MOD3 = add E
|
||||
REM MOD4 = add C and E
|
||||
NPUBLIC\GRANT R W M F FOR F:\RUTEST\MOD1 TO USER MARIO >> F:\RUCMP\RUN.LOG
|
||||
NPUBLIC\GRANT R W C M F FOR F:\RUTEST\MOD2 TO USER MARIO >> F:\RUCMP\RUN.LOG
|
||||
NPUBLIC\GRANT R W E M F FOR F:\RUTEST\MOD3 TO USER MARIO >> F:\RUCMP\RUN.LOG
|
||||
NPUBLIC\GRANT R W C E M F FOR F:\RUTEST\MOD4 TO USER MARIO >> F:\RUCMP\RUN.LOG
|
||||
|
||||
ECHO === PRE READBACK === >> F:\RUCMP\RUN.LOG
|
||||
NPUBLIC\RIGHTS F:\RUCMP\MARIO > F:\RUCMP\PRE\OUTDIR.OUT
|
||||
NPUBLIC\RIGHTS F:\RUTEST\RONLY > F:\RUCMP\PRE\RONLY.OUT
|
||||
NPUBLIC\RIGHTS F:\RUTEST\CREATE > F:\RUCMP\PRE\CREATE.OUT
|
||||
NPUBLIC\RIGHTS F:\RUTEST\WRITE > F:\RUCMP\PRE\WRITE.OUT
|
||||
NPUBLIC\RIGHTS F:\RUTEST\ERASE > F:\RUCMP\PRE\ERASE.OUT
|
||||
NPUBLIC\RIGHTS F:\RUTEST\SCAN > F:\RUCMP\PRE\SCAN.OUT
|
||||
NPUBLIC\RIGHTS F:\RUTEST\ACCESS > F:\RUCMP\PRE\ACCESS.OUT
|
||||
NPUBLIC\RIGHTS F:\RUTEST\ALL > F:\RUCMP\PRE\ALL.OUT
|
||||
NPUBLIC\RIGHTS F:\RUTEST\MOD1 > F:\RUCMP\PRE\MOD1.OUT
|
||||
NPUBLIC\RIGHTS F:\RUTEST\MOD2 > F:\RUCMP\PRE\MOD2.OUT
|
||||
NPUBLIC\RIGHTS F:\RUTEST\MOD3 > F:\RUCMP\PRE\MOD3.OUT
|
||||
NPUBLIC\RIGHTS F:\RUTEST\MOD4 > F:\RUCMP\PRE\MOD4.OUT
|
||||
NPUBLIC\NDIR F:\RUTEST > F:\RUCMP\PRE\ROOT.OUT
|
||||
NPUBLIC\NDIR F:\RUTEST /RIGHTS > F:\RUCMP\PRE\ROOTRGHT.OUT
|
||||
|
||||
ECHO === RUTPRE fertig ===
|
||||
ECHO Jetzt als MARIO einloggen und RUTMARIO ausfuehren.
|
||||
26
test/rightsuser/RUTZIP.BAT
Normal file
26
test/rightsuser/RUTZIP.BAT
Normal file
@@ -0,0 +1,26 @@
|
||||
@ECHO OFF
|
||||
REM RUTZIP.BAT
|
||||
REM Optional packer for RUTSTA rights-user result files.
|
||||
REM Requires ZIP.EXE in PATH or current directory.
|
||||
|
||||
F:
|
||||
CD \RUCMP
|
||||
|
||||
IF EXIST RUTSTA.ZIP DEL RUTSTA.ZIP
|
||||
IF EXIST ZIP.LOG DEL ZIP.LOG
|
||||
|
||||
ECHO Creating RUTSTA.ZIP > ZIP.LOG
|
||||
ZIP -r RUTSTA.ZIP RUN.LOG SUMMARY.TXT PRE MARIO 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 \RUTEST\NUL DELTREE /Y \RUTEST >> ZIP.LOG
|
||||
CD \
|
||||
ECHO.
|
||||
ECHO ZIP step finished.
|
||||
ECHO Check:
|
||||
ECHO F:\RUCMP\RUTSTA.ZIP
|
||||
ECHO F:\RUCMP\ZIP.LOG
|
||||
ECHO.
|
||||
21
test/slist/README.md
Normal file
21
test/slist/README.md
Normal file
@@ -0,0 +1,21 @@
|
||||
# SLSTSTA - SLIST baseline test
|
||||
|
||||
Novell-only baseline for `SLIST` behavior.
|
||||
|
||||
Runs `NPUBLIC\SLIST` with:
|
||||
|
||||
- no argument
|
||||
- `MARS` as expected existing server
|
||||
- `NWBYGONE01` as expected missing-server/negative test
|
||||
- `/CONTINUE` variants
|
||||
- `/?` usage output
|
||||
|
||||
Results are written to `F:\SLSTCMP`. Optional packaging is done with `SLSTZIP.BAT`.
|
||||
|
||||
`D99_HELP.OUT` is intentionally simulated with:
|
||||
|
||||
```text
|
||||
Usage: SLIST [Server] [/Continue]
|
||||
```
|
||||
|
||||
Reason: the Novell `SLIST /?` help text was observed on the console, but it does not reliably land in the redirected output file. Later, our implementation should run `SLIST /? > D99_HELP.OUT`, and this simulated Novell baseline gives us a stable file for comparison.
|
||||
66
test/slist/SLSTSTA.BAT
Normal file
66
test/slist/SLSTSTA.BAT
Normal file
@@ -0,0 +1,66 @@
|
||||
@ECHO OFF
|
||||
REM SLSTSTA.BAT
|
||||
REM Automated SLIST test for MARS NWE.
|
||||
REM
|
||||
REM Uses NPUBLIC\SLIST as Novell baseline for currently implemented tool behavior.
|
||||
REM Servers:
|
||||
REM MARS expected to exist
|
||||
REM NWBYGONE01 expected negative/missing-server test
|
||||
REM
|
||||
REM Result tree:
|
||||
REM F:\SLSTCMP
|
||||
|
||||
F:
|
||||
CD \
|
||||
|
||||
REM --- Clean generated test/result directories (contents only). ---
|
||||
IF EXIST SLSTCMP\NUL DELTREE /Y SLSTCMP\*.*
|
||||
|
||||
IF NOT EXIST SLSTCMP\NUL MD SLSTCMP
|
||||
IF NOT EXIST SLSTCMP\OUT\NUL MD SLSTCMP\OUT
|
||||
|
||||
ECHO SLSTSTA SLIST test > F:\SLSTCMP\RUN.LOG
|
||||
ECHO Server MARS should exist. >> F:\SLSTCMP\RUN.LOG
|
||||
ECHO Server NWBYGONE01 is expected to be missing. >> F:\SLSTCMP\RUN.LOG
|
||||
ECHO. >> F:\SLSTCMP\RUN.LOG
|
||||
|
||||
ECHO === D01 default SLIST === >> F:\SLSTCMP\RUN.LOG
|
||||
NPUBLIC\SLIST > F:\SLSTCMP\OUT\D01_LIST.OUT
|
||||
|
||||
ECHO === D02 existing server MARS === >> F:\SLSTCMP\RUN.LOG
|
||||
NPUBLIC\SLIST MARS > F:\SLSTCMP\OUT\D02_MARS_OK.OUT
|
||||
|
||||
ECHO === D03 missing server NWBYGONE01 === >> F:\SLSTCMP\RUN.LOG
|
||||
NPUBLIC\SLIST NWBYGONE01 > F:\SLSTCMP\OUT\D03_NWBYGONE01_MISSING.OUT
|
||||
|
||||
ECHO === D04 default SLIST /CONTINUE === >> F:\SLSTCMP\RUN.LOG
|
||||
NPUBLIC\SLIST /CONTINUE > F:\SLSTCMP\OUT\D04_CONT.OUT
|
||||
|
||||
ECHO === D05 MARS /CONTINUE === >> F:\SLSTCMP\RUN.LOG
|
||||
NPUBLIC\SLIST MARS /CONTINUE > F:\SLSTCMP\OUT\D05_MARS_CONT_OK.OUT
|
||||
|
||||
ECHO === D06 NWBYGONE01 /CONTINUE === >> F:\SLSTCMP\RUN.LOG
|
||||
NPUBLIC\SLIST NWBYGONE01 /CONTINUE > F:\SLSTCMP\OUT\D06_NWBYGONE01_CONT_MISSING.OUT
|
||||
|
||||
ECHO === D99 usage/help simulated from Novell console output === >> F:\SLSTCMP\RUN.LOG
|
||||
REM Novell SLIST /? prints the usage on the console and does not reliably
|
||||
REM write it through stdout redirection. Keep the Novell baseline file
|
||||
REM filled with the observed console text, so our implementation can later
|
||||
REM be compared against its redirected SLIST /? output.
|
||||
ECHO Usage: SLIST [Server] [/Continue] > F:\SLSTCMP\OUT\D99_HELP.OUT
|
||||
|
||||
ECHO === SUMMARY === > F:\SLSTCMP\SUMMARY.TXT
|
||||
ECHO SLSTSTA SLIST baseline finished. >> F:\SLSTCMP\SUMMARY.TXT
|
||||
ECHO. >> F:\SLSTCMP\SUMMARY.TXT
|
||||
ECHO Expected: >> F:\SLSTCMP\SUMMARY.TXT
|
||||
ECHO - D01 lists visible servers/services. >> F:\SLSTCMP\SUMMARY.TXT
|
||||
ECHO - D02 finds or accepts MARS. >> F:\SLSTCMP\SUMMARY.TXT
|
||||
ECHO - D03 is the negative test for missing NWBYGONE01. >> F:\SLSTCMP\SUMMARY.TXT
|
||||
ECHO - D04/D05/D06 record /CONTINUE behavior. >> F:\SLSTCMP\SUMMARY.TXT
|
||||
ECHO - D99 records usage syntax. >> F:\SLSTCMP\SUMMARY.TXT
|
||||
ECHO. >> F:\SLSTCMP\SUMMARY.TXT
|
||||
ECHO Optional: SLSTZIP ausfuehren. >> F:\SLSTCMP\SUMMARY.TXT
|
||||
|
||||
ECHO SLSTSTA fertig.
|
||||
ECHO Ergebnisse liegen in F:\SLSTCMP
|
||||
ECHO Optional: SLSTZIP ausfuehren.
|
||||
25
test/slist/SLSTZIP.BAT
Normal file
25
test/slist/SLSTZIP.BAT
Normal file
@@ -0,0 +1,25 @@
|
||||
@ECHO OFF
|
||||
REM SLSTZIP.BAT
|
||||
REM Optional packer for SLSTSTA result files.
|
||||
REM Requires ZIP.EXE in PATH or current directory.
|
||||
|
||||
F:
|
||||
CD \SLSTCMP
|
||||
|
||||
IF EXIST SLSTSTA.ZIP DEL SLSTSTA.ZIP
|
||||
IF EXIST ZIP.LOG DEL ZIP.LOG
|
||||
|
||||
ECHO Creating SLSTSTA.ZIP > ZIP.LOG
|
||||
ZIP -r SLSTSTA.ZIP RUN.LOG SUMMARY.TXT OUT >> ZIP.LOG
|
||||
|
||||
|
||||
REM Cleanup generated test directories after ZIP.
|
||||
REM Keep the CMP/result directory because it contains the ZIP and ZIP.LOG.
|
||||
REM No separate TEST directory for this test; SLSTCMP is the result directory.
|
||||
CD \
|
||||
ECHO.
|
||||
ECHO ZIP step finished.
|
||||
ECHO Check:
|
||||
ECHO F:\SLSTCMP\SLSTSTA.ZIP
|
||||
ECHO F:\SLSTCMP\ZIP.LOG
|
||||
ECHO.
|
||||
39
test/whoami/README.md
Normal file
39
test/whoami/README.md
Normal file
@@ -0,0 +1,39 @@
|
||||
# WHOAMI baseline test
|
||||
|
||||
This directory contains a Novell `WHOAMI` baseline test for MARS NWE.
|
||||
|
||||
## Files
|
||||
|
||||
- `WHOSTA.BAT` - runs the baseline test and writes results to `F:\WHOCMP`.
|
||||
- `WHOZIP.BAT` - packs the result directory into `F:\WHOCMP\WHOSTA.ZIP`.
|
||||
|
||||
## Run
|
||||
|
||||
Run while logged in as the user whose identity/context should be captured, normally `SUPERVISOR`:
|
||||
|
||||
```bat
|
||||
F:
|
||||
CD WHOSTA
|
||||
WHOZIP
|
||||
```
|
||||
|
||||
## Coverage
|
||||
|
||||
The test uses Novell baseline tool `\NPUBLIC\WHOAMI` and captures:
|
||||
|
||||
- default `WHOAMI`
|
||||
- explicit server `WHOAMI MARS`
|
||||
- documented options: `/SECURITY`, `/GROUPS`, `/WORKGROUPS`, `/RIGHTS`, `/SYSTEM`, `/OBJECT`, `/ALL`
|
||||
- missing-server case with `NWBYGONE01`
|
||||
- bad-option case
|
||||
- help text from `WHOAMI /?`
|
||||
|
||||
Known usage from Novell baseline:
|
||||
|
||||
```text
|
||||
Usage:
|
||||
WHOAMI [Server] [/Security] [/Groups] [/WorkGroups] [/Rights] [/SYstem]
|
||||
[/Object] [/All] [/Continuous]
|
||||
```
|
||||
|
||||
The output is login-context dependent, so later comparisons should normalize user/server/date/session-specific lines where needed.
|
||||
74
test/whoami/WHOSTA.BAT
Normal file
74
test/whoami/WHOSTA.BAT
Normal file
@@ -0,0 +1,74 @@
|
||||
@ECHO OFF
|
||||
REM WHOSTA.BAT
|
||||
REM Automated WHOAMI baseline test for MARS NWE.
|
||||
REM
|
||||
REM Run while logged in as SUPERVISOR or the user whose context should be captured.
|
||||
REM Uses \NPUBLIC\WHOAMI as Novell baseline.
|
||||
REM
|
||||
REM Result tree:
|
||||
REM F:\WHOCMP
|
||||
|
||||
F:
|
||||
CD \
|
||||
|
||||
REM --- Clean generated result directory (contents only). ---
|
||||
IF EXIST WHOCMP\NUL DELTREE /Y WHOCMP\*.*
|
||||
IF NOT EXIST WHOCMP\NUL MD WHOCMP
|
||||
IF NOT EXIST WHOCMP\OUT\NUL MD WHOCMP\OUT
|
||||
|
||||
ECHO WHOSTA WHOAMI baseline test > F:\WHOCMP\RUN.LOG
|
||||
ECHO Run this while logged in as the target user, normally SUPERVISOR. >> F:\WHOCMP\RUN.LOG
|
||||
ECHO Captures \NPUBLIC\WHOAMI output and option variants. >> F:\WHOCMP\RUN.LOG
|
||||
ECHO. >> F:\WHOCMP\RUN.LOG
|
||||
|
||||
ECHO === D01 default WHOAMI === >> F:\WHOCMP\RUN.LOG
|
||||
\NPUBLIC\WHOAMI > F:\WHOCMP\OUT\D01_BASE.OUT
|
||||
|
||||
ECHO === D02 explicit server MARS === >> F:\WHOCMP\RUN.LOG
|
||||
\NPUBLIC\WHOAMI MARS > F:\WHOCMP\OUT\D02_MARS.OUT
|
||||
|
||||
ECHO === D10 /SECURITY === >> F:\WHOCMP\RUN.LOG
|
||||
\NPUBLIC\WHOAMI /SECURITY > F:\WHOCMP\OUT\D10_SECUR.OUT
|
||||
|
||||
ECHO === D11 /GROUPS === >> F:\WHOCMP\RUN.LOG
|
||||
\NPUBLIC\WHOAMI /GROUPS > F:\WHOCMP\OUT\D11_GROUP.OUT
|
||||
|
||||
ECHO === D12 /WORKGROUPS === >> F:\WHOCMP\RUN.LOG
|
||||
\NPUBLIC\WHOAMI /WORKGROUPS > F:\WHOCMP\OUT\D12_WORK.OUT
|
||||
|
||||
ECHO === D13 /RIGHTS === >> F:\WHOCMP\RUN.LOG
|
||||
\NPUBLIC\WHOAMI /RIGHTS > F:\WHOCMP\OUT\D13_RIGHT.OUT
|
||||
|
||||
ECHO === D14 /SYSTEM === >> F:\WHOCMP\RUN.LOG
|
||||
\NPUBLIC\WHOAMI /SYSTEM > F:\WHOCMP\OUT\D14_SYST.OUT
|
||||
|
||||
ECHO === D15 /OBJECT === >> F:\WHOCMP\RUN.LOG
|
||||
\NPUBLIC\WHOAMI /OBJECT > F:\WHOCMP\OUT\D15_OBJ.OUT
|
||||
|
||||
ECHO === D16 /ALL === >> F:\WHOCMP\RUN.LOG
|
||||
\NPUBLIC\WHOAMI /ALL > F:\WHOCMP\OUT\D16_ALL.OUT
|
||||
|
||||
ECHO === D90 missing server / negative server case === >> F:\WHOCMP\RUN.LOG
|
||||
\NPUBLIC\WHOAMI NWBYGONE01 > F:\WHOCMP\OUT\D90_MISS.OUT
|
||||
|
||||
ECHO === D91 unknown option === >> F:\WHOCMP\RUN.LOG
|
||||
\NPUBLIC\WHOAMI /BOGUS > F:\WHOCMP\OUT\D91_BOGUS.OUT
|
||||
|
||||
ECHO === D99 usage/help === >> F:\WHOCMP\RUN.LOG
|
||||
\NPUBLIC\WHOAMI /? > F:\WHOCMP\OUT\D99_HELP.OUT
|
||||
|
||||
ECHO === SUMMARY === > F:\WHOCMP\SUMMARY.TXT
|
||||
ECHO WHOSTA WHOAMI baseline finished. >> F:\WHOCMP\SUMMARY.TXT
|
||||
ECHO. >> F:\WHOCMP\SUMMARY.TXT
|
||||
ECHO Expected coverage: >> F:\WHOCMP\SUMMARY.TXT
|
||||
ECHO - D01 captures default identity output for the current login context. >> F:\WHOCMP\SUMMARY.TXT
|
||||
ECHO - D02 captures explicit server syntax with MARS. >> F:\WHOCMP\SUMMARY.TXT
|
||||
ECHO - D10-D16 capture documented option variants. >> F:\WHOCMP\SUMMARY.TXT
|
||||
ECHO - D90-D91 capture missing-server and bad-option behavior. >> F:\WHOCMP\SUMMARY.TXT
|
||||
ECHO - D99 captures Usage text from WHOAMI /?. >> F:\WHOCMP\SUMMARY.TXT
|
||||
ECHO. >> F:\WHOCMP\SUMMARY.TXT
|
||||
ECHO Optional: WHOZIP ausfuehren. >> F:\WHOCMP\SUMMARY.TXT
|
||||
|
||||
ECHO WHOSTA fertig.
|
||||
ECHO Ergebnisse liegen in F:\WHOCMP
|
||||
ECHO Optional: WHOZIP ausfuehren.
|
||||
21
test/whoami/WHOZIP.BAT
Normal file
21
test/whoami/WHOZIP.BAT
Normal file
@@ -0,0 +1,21 @@
|
||||
@ECHO OFF
|
||||
REM WHOZIP.BAT
|
||||
REM Optional packer for WHOSTA result files.
|
||||
REM Requires ZIP.EXE in PATH or current directory.
|
||||
|
||||
F:
|
||||
CD \WHOCMP
|
||||
|
||||
IF EXIST WHOSTA.ZIP DEL WHOSTA.ZIP
|
||||
IF EXIST ZIP.LOG DEL ZIP.LOG
|
||||
|
||||
ECHO Creating WHOSTA.ZIP > ZIP.LOG
|
||||
ZIP -r WHOSTA.ZIP RUN.LOG SUMMARY.TXT OUT >> ZIP.LOG
|
||||
|
||||
CD \
|
||||
ECHO.
|
||||
ECHO ZIP step finished.
|
||||
ECHO Check:
|
||||
ECHO F:\WHOCMP\WHOSTA.ZIP
|
||||
ECHO F:\WHOCMP\ZIP.LOG
|
||||
ECHO.
|
||||
Reference in New Issue
Block a user