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:
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"
|
||||
Reference in New Issue
Block a user