dosutils: align Novell-compatible tests and stage NCOPY work
Update the DOS utilities and test suite with the current Novell comparison state. Validated/updated tool behavior: - improve CREATOR output by showing Novell-style attribute and rights masks - extend FLAGDIR handling with old NCP22 directory attribute read/write fallback paths - expand NDIR Novell-style formatting, filtering, /SUB handling, date output, DI/RI attribute display and richer metadata collection - adjust REVOKE output/grammar, recursive /SUBDIRECTORIES behavior and trustee update/delete paths to better match Novell tools - adjust SLIST header/output behavior for logged-in and logged-out cases - update README status to reflect the currently green/tested tools Test-suite changes: - add/refresh Novell comparison tests for CREATOR, NDIR, REVOKE and SLIST - update NCOPY tests and collection scripts for the current investigation state - refresh per-tool README files and top-level test documentation - keep MAP documented as still separately open NCOPY: - add the current NCOPY implementation and experimental NCP74/server-side-copy scaffolding - build ncopy.c so it stays compile-tested - keep NCOPY disabled in the NET multicall dispatch for now because the server-side-copy/open-handle path is still unsafe and needs further analysis Build: - include ncopy.c in the DOS utility build - drop the temporary MARS_DOSUTILS_VERSION define wiring from CMake
This commit is contained in:
@@ -1,18 +1,83 @@
|
||||
# CREATOR / xattr automated test
|
||||
|
||||
This replaces the old FILER/manual creator-xattr test with a direct test using
|
||||
`PUBLIC\CREATOR.EXE`.
|
||||
This test validates `PUBLIC\CREATOR.EXE` against the MARS-NWE file metadata
|
||||
stored in Linux extended attributes. It also performs an optional readback as
|
||||
`NOPASSUSER`, so the generated metadata and effective rights can be checked from
|
||||
a normal-user context.
|
||||
|
||||
## Requirements
|
||||
|
||||
`PUBLIC\CREATOR.EXE` from the new dosutils tree must be installed.
|
||||
Install the current DOS tools into the normal test locations:
|
||||
|
||||
```text
|
||||
SYS:PUBLIC\CREATOR.EXE
|
||||
SYS:PUBLIC\RIGHTS.EXE
|
||||
SYS:PUBLIC\DLYSTRT.EXE
|
||||
SYS:NPUBLIC\NDIR.EXE
|
||||
SYS:NPUBLIC\RIGHTS.EXE
|
||||
SYS:NPUBLIC\FLAG.EXE
|
||||
SYS:NPUBLIC\GRANT.EXE
|
||||
```
|
||||
|
||||
For the Linux collector install the `attr` package, so `getfattr` is available.
|
||||
|
||||
The optional user-context phase expects these accounts to exist:
|
||||
|
||||
```text
|
||||
SUPERVISOR
|
||||
NOPASSUSER
|
||||
MARIO
|
||||
```
|
||||
|
||||
`MARIO` is used as the creator/modifier/archiver object name in the test data.
|
||||
|
||||
## Files used by the test
|
||||
|
||||
All DOS scripts are expected at the root of `F:`:
|
||||
|
||||
```text
|
||||
F:\CIXSTA.BAT
|
||||
F:\CIXC.BAT
|
||||
F:\CIXZIP.BAT
|
||||
```
|
||||
|
||||
`CIXC.BAT` and `DLYSTRT.EXE` are copied to `C:\CIXTMP` before the delayed
|
||||
logout/login helper is started. `CIXSTA.BAT` stays on `F:` and is run again as
|
||||
`F:\CIXSTA.BAT PART2` after the helper has logged `SUPERVISOR` back in.
|
||||
|
||||
Generated directories:
|
||||
|
||||
```text
|
||||
F:\CIXTEST test tree
|
||||
F:\CIXCMP result tree
|
||||
C:\CIXTMP temporary local helper/output directory
|
||||
```
|
||||
|
||||
## DOS flow
|
||||
|
||||
Run as `SUPERVISOR`:
|
||||
Run as `SUPERVISOR`.
|
||||
|
||||
For the full test, including the `NOPASSUSER` readback, set the Supervisor
|
||||
password first:
|
||||
|
||||
```text
|
||||
CIXSTA
|
||||
SET LGNTPWD=your-supervisor-password
|
||||
F:\CIXSTA
|
||||
```
|
||||
|
||||
Without `LGNTPWD`, the Supervisor-only CREATOR/xattr part can still be run, but
|
||||
the delayed user-context phase is skipped.
|
||||
|
||||
When the delayed helper finishes, it starts:
|
||||
|
||||
```text
|
||||
F:\CIXSTA PART2
|
||||
```
|
||||
|
||||
Wait until the screen shows:
|
||||
|
||||
```text
|
||||
CIXSTA PART2 fertig.
|
||||
```
|
||||
|
||||
Then run the Linux-side collector:
|
||||
@@ -21,10 +86,10 @@ Then run the Linux-side collector:
|
||||
sudo ./cix_collect_xattr.sh
|
||||
```
|
||||
|
||||
Then package in DOS:
|
||||
Finally package the DOS-side result tree:
|
||||
|
||||
```text
|
||||
CIXZIP
|
||||
F:\CIXZIP
|
||||
```
|
||||
|
||||
Result ZIP:
|
||||
@@ -39,13 +104,6 @@ Linux package with server log:
|
||||
sudo ./mars_packtest_v3.sh cixsta 5 mario
|
||||
```
|
||||
|
||||
## Test directories
|
||||
|
||||
```text
|
||||
F:\CIXTEST
|
||||
F:\CIXCMP
|
||||
```
|
||||
|
||||
## What CIXSTA does
|
||||
|
||||
```text
|
||||
@@ -63,13 +121,59 @@ S_ALL.TXT:
|
||||
Expected xattrs: user.mars_nwe.fileinfo and user.mars_nwe.archive
|
||||
```
|
||||
|
||||
## Important outputs
|
||||
The scripts also grant `NOPASSUSER` read/file-scan rights and collect readback
|
||||
output as that user:
|
||||
|
||||
```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
|
||||
UNOV\*.OUT NPUBLIC\RIGHTS readback as NOPASSUSER
|
||||
UPUB\*.OUT PUBLIC\RIGHTS readback as NOPASSUSER
|
||||
UCREATOR\*.OUT PUBLIC\CREATOR /SHOW readback as NOPASSUSER
|
||||
UCOMP.LOG FC comparison of UNOV vs UPUB
|
||||
HELPER.TXT delayed helper phase log
|
||||
```
|
||||
|
||||
## Important DOS outputs
|
||||
|
||||
```text
|
||||
F:\CIXCMP\RUN.LOG
|
||||
F:\CIXCMP\SUMMARY.TXT
|
||||
F:\CIXCMP\PRE\*.OUT
|
||||
F:\CIXCMP\POST\*.OUT
|
||||
F:\CIXCMP\UNOV\*.OUT
|
||||
F:\CIXCMP\UPUB\*.OUT
|
||||
F:\CIXCMP\UCREATOR\*.OUT
|
||||
F:\CIXCMP\UCOMP.LOG
|
||||
F:\CIXCMP\HELPER.TXT
|
||||
```
|
||||
|
||||
## Important Linux outputs
|
||||
|
||||
The collector writes DOS/ZIP-safe 8.3 file names under `F:\CIXCMP\LINUX`
|
||||
(`/var/mars_nwe/SYS/CIXCMP/LINUX` on Linux):
|
||||
|
||||
```text
|
||||
collecto.txt collector metadata
|
||||
files.txt enumerated files/directories
|
||||
stat.txt Linux stat information
|
||||
xattr_na.txt xattr names only
|
||||
getfattr.txt full xattr dump with hex values
|
||||
xattr_fo.txt filtered mars/nwe/netware/creator/archive-related xattrs
|
||||
```
|
||||
|
||||
The expected interesting xattrs are:
|
||||
|
||||
```text
|
||||
user.mars_nwe.fileinfo
|
||||
user.mars_nwe.archive
|
||||
```
|
||||
|
||||
## Expected good result
|
||||
|
||||
A good run has:
|
||||
|
||||
```text
|
||||
UCOMP.LOG: all FC comparisons report no differences
|
||||
UCREATOR\*.OUT: CREATOR /SHOW prints readable Attributes and Rights mask
|
||||
LINUX\getfattr.txt: S_SUP.TXT has fileinfo, S_ARCH.TXT has archive,
|
||||
S_ALL.TXT has both fileinfo and archive
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user