Files
mars-dosutils/test/quota

DOS quota write-deny smoke

This test proves the client-visible quota boundary with DOS board tools while keeping the authority split explicit:

  • Linux/MARS-NWE sets the quota on the host side.
  • DOS writes as NOPASSUSER and proves that 12 4K blocks are allowed while the 13th 4K block is denied.

The flow uses the same DLYSTRT pattern as the rights/login tests, because LOGOUT removes network mappings. DQTSTA copies DQTC.BAT, DLYSTRT.EXE, TESTS.EXE, LOGIN, and LOGOUT to C:\DQTTMP, then queues the helper from there. 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 the target volume and run:

SET LGNTPWD=zefuqUVe
F:
DQTSTA

DQTSTA creates:

  • F:\DQTTEST\NCPQFILL for the data files
  • F:\DQTCMP for network-side logs
  • C:\DQTTMP for the delayed helper and local logs

Linux handoff

When DOS prints that DQTC is waiting, set the quota on Linux, for example:

./nwfs_ncpfs_userquota -S MARS -U SUPERVISOR -P 'zefuqUVe' \
  --volume QUOTA --object NOPASSUSER --type 1 --limit-4k 12

Then return to DOS and press J, j, Y, or y.

DOS part 2

The helper logs in as NOPASSUSER, writes Q00001.BIN through Q00012.BIN, and expects QFAIL.BIN to fail. 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.

Automatic relogin detail

The quota handoff follows the same pattern as the RIGHTS/GRANT/REVOKE DOS tests: DQTSTA copies the helper to C:\DQTTMP, starts it with DLYSTRT, and the helper uses a generated DQTREL.BAT to log back in as SUPERVISOR and queue F:\DQTSTA.BAT PART2. The relogin uses LOGIN /NS SUPERVISOR /PWD:%LGNTPWD% so the login script does not disturb the test mappings.