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