DOS quota write-deny smoke
This test proves the client-visible quota boundary with DOS board tools while keeping the authority split explicit. It now tests both quota backends in one DOS handoff:
QUOTAis mapped asQ:and uses the Linux quota backend.SYSstays mapped asF:and uses the NWQUOTA metadata backend.
DQTSTA prepares both Q:\DQTQUOTA\NCPQFILL and
F:\DQTSYS\NCPQFILL, then starts DQTC.BAT via DLYSTRT. The helper waits
for J/j/Y/y before it logs out and logs in as NOPASSUSER, so the Linux quota
setup can happen in between.
DOS part 1
Login as SUPERVISOR on SYS and run:
SET LGNTPWD=zefuqUVe
F:
DQTSTA
DQTSTA maps Q:=QUOTA: and creates:
Q:\DQTQUOTA\NCPQFILLfor the Linuxquota volume test filesF:\DQTSYS\NCPQFILLfor the NWQUOTA metadata volume test filesF:\DQTCMPfor network-side logsC:\DQTTMPfor the delayed helper and local logs
Linux handoff
When DOS prints that DQTC is waiting, set quotas for NOPASSUSER with the
Linux helper. The helper reads the current inuse4k value on both volumes and
sets each limit to inuse4k + 12, which is the correct boundary for this smoke
even when old files or salvage/recycle remnants already exist.
./test/quota/dqt_linux_handoff.sh MARS SUPERVISOR 'zefuqUVe'
If the nwfs_ncpfs_userquota helper is not in PATH, point the script at the
built MARS-NWE test helper:
NWFS_NCPFS_USERQUOTA=/home/mario/mars/mars-nwe-build/tests/nwfs/nwfs_ncpfs_userquota \
./test/quota/dqt_linux_handoff.sh MARS SUPERVISOR 'zefuqUVe'
The helper updates both backends:
QUOTA: Linuxquota-authoritative volume, mapped asQ:in DOS.SYS: NWQUOTA metadata-authoritative volume, mapped asF:in DOS.
Then return to DOS and press J, j, Y, or y.
DOS part 2
The helper logs in as NOPASSUSER, maps Q:=QUOTA:, writes 12 4K files on
both volumes, and expects the 13th 4K file to fail on both volumes. If
LGNTPWD is set, it logs back in as SUPERVISOR and queues:
F:\DQTSTA.BAT PART2
Finally, optionally pack the logs:
F:
DQTZIP
Expected summary:
PASS: DOS quota deny observed on QUOTA and SYS.