tests: cover SYS and QUOTA in DOS quota smoke
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
REM DQTC.BAT
|
||||
REM Started by DQTSTA via DLYSTRT. Runs from C:\DQTTMP.
|
||||
REM It waits for the Linux quota setup, then logs in as NOPASSUSER and proves
|
||||
REM that the 13th 4K write is denied.
|
||||
REM that the 13th 4K write is denied on both QUOTA and SYS.
|
||||
|
||||
C:
|
||||
CD \DQTTMP
|
||||
@@ -11,12 +11,14 @@ IF EXIST PASS.TAG DEL PASS.TAG
|
||||
IF EXIST FAIL.TAG DEL FAIL.TAG
|
||||
IF EXIST WRITE.LOG DEL WRITE.LOG
|
||||
IF EXIST HELPER.TXT DEL HELPER.TXT
|
||||
IF EXIST QPASS.TAG DEL QPASS.TAG
|
||||
IF EXIST SPASS.TAG DEL SPASS.TAG
|
||||
|
||||
ECHO DQTC helper started from C:\DQTTMP. > C:\DQTTMP\HELPER.TXT
|
||||
ECHO Waiting for Linux quota setup before logout/login. >> C:\DQTTMP\HELPER.TXT
|
||||
ECHO. >> C:\DQTTMP\HELPER.TXT
|
||||
ECHO DQTC wartet jetzt auf den Linux-Teil.
|
||||
ECHO Linux: quota fuer NOPASSUSER auf 12x4K setzen.
|
||||
ECHO Linux: quota fuer NOPASSUSER auf QUOTA und SYS setzen.
|
||||
ECHO Danach hier J, j, Y oder y druecken.
|
||||
C:\DQTTMP\TESTS WAITJY
|
||||
IF ERRORLEVEL 1 GOTO ABORT
|
||||
@@ -27,66 +29,117 @@ C:\DQTTMP\LOGOUT > C:\DQTTMP\D01_LOGOUT.OUT
|
||||
ECHO === LOGIN NOPASSUSER === >> C:\DQTTMP\HELPER.TXT
|
||||
C:\DQTTMP\LOGIN NOPASSUSER > C:\DQTTMP\D02_LOGIN_USER.OUT
|
||||
|
||||
REM NOPASSUSER login normally restores SYS as F:. Map QUOTA explicitly.
|
||||
F:
|
||||
CD \
|
||||
IF EXIST DQTTEST\NCPQFILL\NUL GOTO HAVEDIR
|
||||
ECHO FAIL: F:\DQTTEST\NCPQFILL missing after NOPASSUSER login. >> C:\DQTTMP\WRITE.LOG
|
||||
C:\DQTTMP\MAP Q:=QUOTA: > C:\DQTTMP\D02B_MAP_QUOTA.OUT
|
||||
|
||||
IF EXIST Q:\DQTQUOTA\NCPQFILL\NUL GOTO HAVEQDIR
|
||||
ECHO FAIL: Q:\DQTQUOTA\NCPQFILL missing after NOPASSUSER login/map. >> C:\DQTTMP\WRITE.LOG
|
||||
ECHO FAIL > C:\DQTTMP\FAIL.TAG
|
||||
GOTO TESTSYS
|
||||
:HAVEQDIR
|
||||
|
||||
IF EXIST F:\DQTSYS\NCPQFILL\NUL GOTO HAVESDIR
|
||||
ECHO FAIL: F:\DQTSYS\NCPQFILL missing after NOPASSUSER login. >> C:\DQTTMP\WRITE.LOG
|
||||
ECHO FAIL > C:\DQTTMP\FAIL.TAG
|
||||
GOTO RELSUP
|
||||
:HAVEDIR
|
||||
:HAVESDIR
|
||||
|
||||
IF NOT EXIST DQTCMP\NUL MD DQTCMP
|
||||
IF NOT EXIST DQTCMP\DOS\NUL MD DQTCMP\DOS
|
||||
IF NOT EXIST F:\DQTCMP\NUL MD F:\DQTCMP
|
||||
IF NOT EXIST F:\DQTCMP\DOS\NUL MD F:\DQTCMP\DOS
|
||||
IF EXIST F:\DQTCMP\PASS.TAG DEL F:\DQTCMP\PASS.TAG
|
||||
IF EXIST F:\DQTCMP\FAIL.TAG DEL F:\DQTCMP\FAIL.TAG
|
||||
|
||||
ECHO DQTC DOS quota write test as NOPASSUSER > C:\DQTTMP\WRITE.LOG
|
||||
ECHO Writing 12 allowed 4K files. >> C:\DQTTMP\WRITE.LOG
|
||||
ECHO Testing QUOTA on Q:\DQTQUOTA\NCPQFILL. >> C:\DQTTMP\WRITE.LOG
|
||||
GOTO TESTQUOTA
|
||||
|
||||
C:\DQTTMP\TESTS WRITE4K F:\DQTTEST\NCPQFILL\Q00001.BIN 1 >> C:\DQTTMP\WRITE.LOG
|
||||
IF ERRORLEVEL 1 GOTO FAILGOOD
|
||||
C:\DQTTMP\TESTS WRITE4K F:\DQTTEST\NCPQFILL\Q00002.BIN 1 >> C:\DQTTMP\WRITE.LOG
|
||||
IF ERRORLEVEL 1 GOTO FAILGOOD
|
||||
C:\DQTTMP\TESTS WRITE4K F:\DQTTEST\NCPQFILL\Q00003.BIN 1 >> C:\DQTTMP\WRITE.LOG
|
||||
IF ERRORLEVEL 1 GOTO FAILGOOD
|
||||
C:\DQTTMP\TESTS WRITE4K F:\DQTTEST\NCPQFILL\Q00004.BIN 1 >> C:\DQTTMP\WRITE.LOG
|
||||
IF ERRORLEVEL 1 GOTO FAILGOOD
|
||||
C:\DQTTMP\TESTS WRITE4K F:\DQTTEST\NCPQFILL\Q00005.BIN 1 >> C:\DQTTMP\WRITE.LOG
|
||||
IF ERRORLEVEL 1 GOTO FAILGOOD
|
||||
C:\DQTTMP\TESTS WRITE4K F:\DQTTEST\NCPQFILL\Q00006.BIN 1 >> C:\DQTTMP\WRITE.LOG
|
||||
IF ERRORLEVEL 1 GOTO FAILGOOD
|
||||
C:\DQTTMP\TESTS WRITE4K F:\DQTTEST\NCPQFILL\Q00007.BIN 1 >> C:\DQTTMP\WRITE.LOG
|
||||
IF ERRORLEVEL 1 GOTO FAILGOOD
|
||||
C:\DQTTMP\TESTS WRITE4K F:\DQTTEST\NCPQFILL\Q00008.BIN 1 >> C:\DQTTMP\WRITE.LOG
|
||||
IF ERRORLEVEL 1 GOTO FAILGOOD
|
||||
C:\DQTTMP\TESTS WRITE4K F:\DQTTEST\NCPQFILL\Q00009.BIN 1 >> C:\DQTTMP\WRITE.LOG
|
||||
IF ERRORLEVEL 1 GOTO FAILGOOD
|
||||
C:\DQTTMP\TESTS WRITE4K F:\DQTTEST\NCPQFILL\Q00010.BIN 1 >> C:\DQTTMP\WRITE.LOG
|
||||
IF ERRORLEVEL 1 GOTO FAILGOOD
|
||||
C:\DQTTMP\TESTS WRITE4K F:\DQTTEST\NCPQFILL\Q00011.BIN 1 >> C:\DQTTMP\WRITE.LOG
|
||||
IF ERRORLEVEL 1 GOTO FAILGOOD
|
||||
C:\DQTTMP\TESTS WRITE4K F:\DQTTEST\NCPQFILL\Q00012.BIN 1 >> C:\DQTTMP\WRITE.LOG
|
||||
IF ERRORLEVEL 1 GOTO FAILGOOD
|
||||
|
||||
ECHO Attempting expected failing 13th 4K file. >> C:\DQTTMP\WRITE.LOG
|
||||
C:\DQTTMP\TESTS WRITE4K F:\DQTTEST\NCPQFILL\QFAIL.BIN 1 >> C:\DQTTMP\WRITE.LOG
|
||||
IF ERRORLEVEL 1 GOTO PASS
|
||||
|
||||
ECHO FAIL: expected QFAIL.BIN to be denied, but it succeeded. >> C:\DQTTMP\WRITE.LOG
|
||||
:TESTQUOTA
|
||||
C:\DQTTMP\TESTS WRITE4K Q:\DQTQUOTA\NCPQFILL\Q00001.BIN 1 >> C:\DQTTMP\WRITE.LOG
|
||||
IF ERRORLEVEL 1 GOTO FAILGOODQ
|
||||
C:\DQTTMP\TESTS WRITE4K Q:\DQTQUOTA\NCPQFILL\Q00002.BIN 1 >> C:\DQTTMP\WRITE.LOG
|
||||
IF ERRORLEVEL 1 GOTO FAILGOODQ
|
||||
C:\DQTTMP\TESTS WRITE4K Q:\DQTQUOTA\NCPQFILL\Q00003.BIN 1 >> C:\DQTTMP\WRITE.LOG
|
||||
IF ERRORLEVEL 1 GOTO FAILGOODQ
|
||||
C:\DQTTMP\TESTS WRITE4K Q:\DQTQUOTA\NCPQFILL\Q00004.BIN 1 >> C:\DQTTMP\WRITE.LOG
|
||||
IF ERRORLEVEL 1 GOTO FAILGOODQ
|
||||
C:\DQTTMP\TESTS WRITE4K Q:\DQTQUOTA\NCPQFILL\Q00005.BIN 1 >> C:\DQTTMP\WRITE.LOG
|
||||
IF ERRORLEVEL 1 GOTO FAILGOODQ
|
||||
C:\DQTTMP\TESTS WRITE4K Q:\DQTQUOTA\NCPQFILL\Q00006.BIN 1 >> C:\DQTTMP\WRITE.LOG
|
||||
IF ERRORLEVEL 1 GOTO FAILGOODQ
|
||||
C:\DQTTMP\TESTS WRITE4K Q:\DQTQUOTA\NCPQFILL\Q00007.BIN 1 >> C:\DQTTMP\WRITE.LOG
|
||||
IF ERRORLEVEL 1 GOTO FAILGOODQ
|
||||
C:\DQTTMP\TESTS WRITE4K Q:\DQTQUOTA\NCPQFILL\Q00008.BIN 1 >> C:\DQTTMP\WRITE.LOG
|
||||
IF ERRORLEVEL 1 GOTO FAILGOODQ
|
||||
C:\DQTTMP\TESTS WRITE4K Q:\DQTQUOTA\NCPQFILL\Q00009.BIN 1 >> C:\DQTTMP\WRITE.LOG
|
||||
IF ERRORLEVEL 1 GOTO FAILGOODQ
|
||||
C:\DQTTMP\TESTS WRITE4K Q:\DQTQUOTA\NCPQFILL\Q00010.BIN 1 >> C:\DQTTMP\WRITE.LOG
|
||||
IF ERRORLEVEL 1 GOTO FAILGOODQ
|
||||
C:\DQTTMP\TESTS WRITE4K Q:\DQTQUOTA\NCPQFILL\Q00011.BIN 1 >> C:\DQTTMP\WRITE.LOG
|
||||
IF ERRORLEVEL 1 GOTO FAILGOODQ
|
||||
C:\DQTTMP\TESTS WRITE4K Q:\DQTQUOTA\NCPQFILL\Q00012.BIN 1 >> C:\DQTTMP\WRITE.LOG
|
||||
IF ERRORLEVEL 1 GOTO FAILGOODQ
|
||||
ECHO Attempting expected failing 13th 4K file on QUOTA. >> C:\DQTTMP\WRITE.LOG
|
||||
C:\DQTTMP\TESTS WRITE4K Q:\DQTQUOTA\NCPQFILL\QFAIL.BIN 1 >> C:\DQTTMP\WRITE.LOG
|
||||
IF ERRORLEVEL 1 GOTO PASSQ
|
||||
ECHO FAIL: QUOTA expected QFAIL.BIN to be denied, but it succeeded. >> C:\DQTTMP\WRITE.LOG
|
||||
ECHO FAIL > C:\DQTTMP\FAIL.TAG
|
||||
IF EXIST F:\DQTCMP\NUL ECHO FAIL > F:\DQTCMP\FAIL.TAG
|
||||
GOTO RELSUP
|
||||
|
||||
:FAILGOOD
|
||||
ECHO FAIL: an allowed 4K write failed before the quota boundary. >> C:\DQTTMP\WRITE.LOG
|
||||
GOTO TESTSYS
|
||||
:FAILGOODQ
|
||||
ECHO FAIL: QUOTA allowed 4K write failed before the quota boundary. >> C:\DQTTMP\WRITE.LOG
|
||||
ECHO FAIL > C:\DQTTMP\FAIL.TAG
|
||||
IF EXIST F:\DQTCMP\NUL ECHO FAIL > F:\DQTCMP\FAIL.TAG
|
||||
GOTO RELSUP
|
||||
GOTO TESTSYS
|
||||
:PASSQ
|
||||
ECHO PASS: QUOTA 13th 4K file was denied. >> C:\DQTTMP\WRITE.LOG
|
||||
ECHO PASS > C:\DQTTMP\QPASS.TAG
|
||||
GOTO TESTSYS
|
||||
|
||||
:PASS
|
||||
ECHO PASS: 13th 4K file was denied. >> C:\DQTTMP\WRITE.LOG
|
||||
ECHO PASS > C:\DQTTMP\PASS.TAG
|
||||
IF EXIST F:\DQTCMP\NUL ECHO PASS > F:\DQTCMP\PASS.TAG
|
||||
:TESTSYS
|
||||
ECHO. >> C:\DQTTMP\WRITE.LOG
|
||||
ECHO Testing SYS on F:\DQTSYS\NCPQFILL. >> C:\DQTTMP\WRITE.LOG
|
||||
IF EXIST F:\DQTSYS\NCPQFILL\NUL GOTO TESTSYSFILES
|
||||
ECHO FAIL: F:\DQTSYS\NCPQFILL missing after NOPASSUSER login. >> C:\DQTTMP\WRITE.LOG
|
||||
ECHO FAIL > C:\DQTTMP\FAIL.TAG
|
||||
GOTO RELSUP
|
||||
:TESTSYSFILES
|
||||
C:\DQTTMP\TESTS WRITE4K F:\DQTSYS\NCPQFILL\S00001.BIN 1 >> C:\DQTTMP\WRITE.LOG
|
||||
IF ERRORLEVEL 1 GOTO FAILGOODS
|
||||
C:\DQTTMP\TESTS WRITE4K F:\DQTSYS\NCPQFILL\S00002.BIN 1 >> C:\DQTTMP\WRITE.LOG
|
||||
IF ERRORLEVEL 1 GOTO FAILGOODS
|
||||
C:\DQTTMP\TESTS WRITE4K F:\DQTSYS\NCPQFILL\S00003.BIN 1 >> C:\DQTTMP\WRITE.LOG
|
||||
IF ERRORLEVEL 1 GOTO FAILGOODS
|
||||
C:\DQTTMP\TESTS WRITE4K F:\DQTSYS\NCPQFILL\S00004.BIN 1 >> C:\DQTTMP\WRITE.LOG
|
||||
IF ERRORLEVEL 1 GOTO FAILGOODS
|
||||
C:\DQTTMP\TESTS WRITE4K F:\DQTSYS\NCPQFILL\S00005.BIN 1 >> C:\DQTTMP\WRITE.LOG
|
||||
IF ERRORLEVEL 1 GOTO FAILGOODS
|
||||
C:\DQTTMP\TESTS WRITE4K F:\DQTSYS\NCPQFILL\S00006.BIN 1 >> C:\DQTTMP\WRITE.LOG
|
||||
IF ERRORLEVEL 1 GOTO FAILGOODS
|
||||
C:\DQTTMP\TESTS WRITE4K F:\DQTSYS\NCPQFILL\S00007.BIN 1 >> C:\DQTTMP\WRITE.LOG
|
||||
IF ERRORLEVEL 1 GOTO FAILGOODS
|
||||
C:\DQTTMP\TESTS WRITE4K F:\DQTSYS\NCPQFILL\S00008.BIN 1 >> C:\DQTTMP\WRITE.LOG
|
||||
IF ERRORLEVEL 1 GOTO FAILGOODS
|
||||
C:\DQTTMP\TESTS WRITE4K F:\DQTSYS\NCPQFILL\S00009.BIN 1 >> C:\DQTTMP\WRITE.LOG
|
||||
IF ERRORLEVEL 1 GOTO FAILGOODS
|
||||
C:\DQTTMP\TESTS WRITE4K F:\DQTSYS\NCPQFILL\S00010.BIN 1 >> C:\DQTTMP\WRITE.LOG
|
||||
IF ERRORLEVEL 1 GOTO FAILGOODS
|
||||
C:\DQTTMP\TESTS WRITE4K F:\DQTSYS\NCPQFILL\S00011.BIN 1 >> C:\DQTTMP\WRITE.LOG
|
||||
IF ERRORLEVEL 1 GOTO FAILGOODS
|
||||
C:\DQTTMP\TESTS WRITE4K F:\DQTSYS\NCPQFILL\S00012.BIN 1 >> C:\DQTTMP\WRITE.LOG
|
||||
IF ERRORLEVEL 1 GOTO FAILGOODS
|
||||
ECHO Attempting expected failing 13th 4K file on SYS. >> C:\DQTTMP\WRITE.LOG
|
||||
C:\DQTTMP\TESTS WRITE4K F:\DQTSYS\NCPQFILL\SFAIL.BIN 1 >> C:\DQTTMP\WRITE.LOG
|
||||
IF ERRORLEVEL 1 GOTO PASSS
|
||||
ECHO FAIL: SYS expected SFAIL.BIN to be denied, but it succeeded. >> C:\DQTTMP\WRITE.LOG
|
||||
ECHO FAIL > C:\DQTTMP\FAIL.TAG
|
||||
GOTO RELSUP
|
||||
:FAILGOODS
|
||||
ECHO FAIL: SYS allowed 4K write failed before the quota boundary. >> C:\DQTTMP\WRITE.LOG
|
||||
ECHO FAIL > C:\DQTTMP\FAIL.TAG
|
||||
GOTO RELSUP
|
||||
:PASSS
|
||||
ECHO PASS: SYS 13th 4K file was denied. >> C:\DQTTMP\WRITE.LOG
|
||||
ECHO PASS > C:\DQTTMP\SPASS.TAG
|
||||
GOTO RELSUP
|
||||
|
||||
:ABORT
|
||||
@@ -95,6 +148,17 @@ ECHO FAIL > C:\DQTTMP\FAIL.TAG
|
||||
GOTO END
|
||||
|
||||
:RELSUP
|
||||
IF EXIST C:\DQTTMP\QPASS.TAG IF EXIST C:\DQTTMP\SPASS.TAG IF NOT EXIST C:\DQTTMP\FAIL.TAG GOTO ALLPASS
|
||||
GOTO MARKFAIL
|
||||
:ALLPASS
|
||||
ECHO PASS > C:\DQTTMP\PASS.TAG
|
||||
IF EXIST F:\DQTCMP\NUL ECHO PASS > F:\DQTCMP\PASS.TAG
|
||||
GOTO DOREL
|
||||
:MARKFAIL
|
||||
ECHO FAIL > C:\DQTTMP\FAIL.TAG
|
||||
IF EXIST F:\DQTCMP\NUL ECHO FAIL > F:\DQTCMP\FAIL.TAG
|
||||
GOTO DOREL
|
||||
:DOREL
|
||||
TYPE C:\DQTTMP\WRITE.LOG
|
||||
ECHO === LOGOUT NOPASSUSER === >> C:\DQTTMP\HELPER.TXT
|
||||
C:\DQTTMP\LOGOUT > C:\DQTTMP\D03_LOGOUT_USER.OUT
|
||||
|
||||
@@ -2,15 +2,15 @@
|
||||
REM DQTSTA.BAT
|
||||
REM Automated DOS-side quota write-deny smoke for MARS-NWE.
|
||||
REM
|
||||
REM Run as SUPERVISOR from the target volume:
|
||||
REM Run as SUPERVISOR from SYS (F:) with the QUOTA volume available:
|
||||
REM SET LGNTPWD=your-supervisor-password
|
||||
REM F:
|
||||
REM DQTSTA
|
||||
REM
|
||||
REM DQTSTA prepares F:\\DQTTEST/F:\\DQTCMP, copies DQTC.BAT plus the
|
||||
REM maintainer helpers to C:\\DQTTMP, and uses DLYSTRT so the helper keeps
|
||||
REM DQTSTA prepares SYS and QUOTA test directories, copies DQTC.BAT plus the
|
||||
REM maintainer helpers to C:\DQTTMP, and uses DLYSTRT so the helper keeps
|
||||
REM running after LOGOUT/LOGIN. DQTC waits for J/j/Y/y while the Linux side
|
||||
REM sets the quota.
|
||||
REM sets both volume quotas.
|
||||
|
||||
IF "%1"=="" GOTO PART1
|
||||
IF "%1"=="PREP" GOTO PART1
|
||||
@@ -23,10 +23,10 @@ GOTO USAGE
|
||||
F:
|
||||
CD \
|
||||
|
||||
IF EXIST DQTTEST\NUL DELTREE /Y DQTTEST\*.*
|
||||
IF EXIST DQTSYS\NUL DELTREE /Y DQTSYS\*.*
|
||||
IF EXIST DQTCMP\NUL DELTREE /Y DQTCMP\*.*
|
||||
IF NOT EXIST DQTTEST\NUL MD DQTTEST
|
||||
IF NOT EXIST DQTTEST\NCPQFILL\NUL MD DQTTEST\NCPQFILL
|
||||
IF NOT EXIST DQTSYS\NUL MD DQTSYS
|
||||
IF NOT EXIST DQTSYS\NCPQFILL\NUL MD DQTSYS\NCPQFILL
|
||||
IF NOT EXIST DQTCMP\NUL MD DQTCMP
|
||||
IF NOT EXIST DQTCMP\DOS\NUL MD DQTCMP\DOS
|
||||
IF NOT EXIST DQTCMP\SETUP\NUL MD DQTCMP\SETUP
|
||||
@@ -44,35 +44,63 @@ IF EXIST F:\DQTCMP\DOS\*.TAG DEL F:\DQTCMP\DOS\*.TAG
|
||||
|
||||
ECHO DQTSTA DOS quota write-deny smoke > F:\DQTCMP\RUN.LOG
|
||||
ECHO Part 1 started while logged in as SUPERVISOR. >> F:\DQTCMP\RUN.LOG
|
||||
ECHO Linux must set NOPASSUSER quota while DQTC waits for J/j/Y/y. >> F:\DQTCMP\RUN.LOG
|
||||
ECHO Expected: 12x4K writes succeed, 13th 4K write is denied. >> F:\DQTCMP\RUN.LOG
|
||||
ECHO Linux must set NOPASSUSER quota on QUOTA and SYS while DQTC waits. >> F:\DQTCMP\RUN.LOG
|
||||
ECHO Expected on both volumes: 12x4K writes succeed, 13th 4K write is denied. >> F:\DQTCMP\RUN.LOG
|
||||
ECHO. >> F:\DQTCMP\RUN.LOG
|
||||
|
||||
REM Give the normal user enough rights to create files and write result logs.
|
||||
IF EXIST F:\NPUBLIC\MAP.EXE GOTO HAVEMAP
|
||||
ECHO ERROR: F:\NPUBLIC\MAP.EXE not found. >> F:\DQTCMP\RUN.LOG
|
||||
ECHO ERROR: F:\NPUBLIC\MAP.EXE not found.
|
||||
GOTO END
|
||||
:HAVEMAP
|
||||
|
||||
F:\NPUBLIC\MAP Q:=QUOTA: > F:\DQTCMP\SETUP\MAP_QUOTA.OUT
|
||||
IF EXIST Q:\NUL GOTO HAVEQ
|
||||
ECHO ERROR: could not map Q:=QUOTA:. >> F:\DQTCMP\RUN.LOG
|
||||
ECHO ERROR: could not map Q:=QUOTA:.
|
||||
GOTO END
|
||||
:HAVEQ
|
||||
|
||||
Q:
|
||||
CD \
|
||||
IF EXIST DQTQUOTA\NUL DELTREE /Y DQTQUOTA\*.*
|
||||
IF NOT EXIST DQTQUOTA\NUL MD DQTQUOTA
|
||||
IF NOT EXIST DQTQUOTA\NCPQFILL\NUL MD DQTQUOTA\NCPQFILL
|
||||
F:
|
||||
CD \
|
||||
|
||||
REM Give the normal user enough rights to create files on both volumes.
|
||||
IF EXIST F:\NPUBLIC\GRANT.EXE GOTO HAVEGRANT
|
||||
ECHO ERROR: F:\NPUBLIC\GRANT.EXE not found. >> F:\DQTCMP\RUN.LOG
|
||||
ECHO ERROR: F:\NPUBLIC\GRANT.EXE not found.
|
||||
GOTO END
|
||||
|
||||
:HAVEGRANT
|
||||
NPUBLIC\GRANT R W C E M F A FOR F:\DQTTEST TO USER NOPASSUSER > F:\DQTCMP\SETUP\GRANT1.OUT
|
||||
NPUBLIC\GRANT R W C E M F A FOR F:\DQTTEST\NCPQFILL TO USER NOPASSUSER > F:\DQTCMP\SETUP\GRANT2.OUT
|
||||
NPUBLIC\GRANT R W C E M F A FOR F:\DQTCMP TO USER NOPASSUSER > F:\DQTCMP\SETUP\GRANT3.OUT
|
||||
NPUBLIC\RIGHTS F:\DQTTEST\NCPQFILL > F:\DQTCMP\SETUP\RIGHTS.OUT
|
||||
F:\NPUBLIC\GRANT R W C E M F A FOR F:\DQTSYS TO USER NOPASSUSER > F:\DQTCMP\SETUP\GRANT_SYS1.OUT
|
||||
F:\NPUBLIC\GRANT R W C E M F A FOR F:\DQTSYS\NCPQFILL TO USER NOPASSUSER > F:\DQTCMP\SETUP\GRANT_SYS2.OUT
|
||||
F:\NPUBLIC\GRANT R W C E M F A FOR Q:\DQTQUOTA TO USER NOPASSUSER > F:\DQTCMP\SETUP\GRANT_QUOTA1.OUT
|
||||
F:\NPUBLIC\GRANT R W C E M F A FOR Q:\DQTQUOTA\NCPQFILL TO USER NOPASSUSER > F:\DQTCMP\SETUP\GRANT_QUOTA2.OUT
|
||||
F:\NPUBLIC\GRANT R W C E M F A FOR F:\DQTCMP TO USER NOPASSUSER > F:\DQTCMP\SETUP\GRANT_LOG.OUT
|
||||
F:\NPUBLIC\RIGHTS F:\DQTSYS\NCPQFILL > F:\DQTCMP\SETUP\RIGHTS_SYS.OUT
|
||||
F:\NPUBLIC\RIGHTS Q:\DQTQUOTA\NCPQFILL > F:\DQTCMP\SETUP\RIGHTS_QUOTA.OUT
|
||||
|
||||
ECHO === NEXT LINUX STEP === > F:\DQTCMP\LINUX.TXT
|
||||
ECHO When DQTC waits, set volume userquota for NOPASSUSER to 12x4K on this volume. >> F:\DQTCMP\LINUX.TXT
|
||||
ECHO Set NOPASSUSER quota to 12x4K on QUOTA. >> F:\DQTCMP\LINUX.TXT
|
||||
ECHO Set NOPASSUSER quota on SYS to current inuse4k + 12. >> F:\DQTCMP\LINUX.TXT
|
||||
ECHO Example: first use --get on SYS, then set --limit-4k to inuse4k+12. >> F:\DQTCMP\LINUX.TXT
|
||||
ECHO Then return to DOS and press J, j, Y, or y. >> F:\DQTCMP\LINUX.TXT
|
||||
|
||||
IF EXIST C:\DQTTMP\NUL DELTREE /Y C:\DQTTMP\*.*
|
||||
IF NOT EXIST C:\DQTTMP\NUL MD C:\DQTTMP
|
||||
|
||||
ECHO Copying delayed helper and local tools to C:\DQTTMP. >> F:\DQTCMP\RUN.LOG
|
||||
COPY F:\DQTSTA.BAT C:\DQTTMP > F:\DQTCMP\SETUP\CP_DQTSTA.OUT
|
||||
COPY F:\DQTC.BAT C:\DQTTMP > F:\DQTCMP\SETUP\CP_DQTC.OUT
|
||||
COPY F:\PUBLIC\TESTS.EXE C:\DQTTMP > F:\DQTCMP\SETUP\CP_TESTS.OUT
|
||||
COPY F:\PUBLIC\DLYSTRT.EXE C:\DQTTMP > F:\DQTCMP\SETUP\CP_DLY.OUT
|
||||
COPY F:\NLOGIN\LOGIN.* C:\DQTTMP > F:\DQTCMP\SETUP\CP_LOGIN.OUT
|
||||
COPY F:\NPUBLIC\LOGOUT.* C:\DQTTMP > F:\DQTCMP\SETUP\CP_LOGOUT.OUT
|
||||
COPY F:\NPUBLIC\MAP.* C:\DQTTMP > F:\DQTCMP\SETUP\CP_MAP.OUT
|
||||
|
||||
IF EXIST C:\DQTTMP\DQTC.BAT GOTO HVDQTC
|
||||
ECHO ERROR: C:\DQTTMP\DQTC.BAT not copied. >> F:\DQTCMP\RUN.LOG
|
||||
@@ -99,6 +127,11 @@ ECHO ERROR: C:\DQTTMP\LOGOUT.EXE not copied. >> F:\DQTCMP\RUN.LOG
|
||||
ECHO ERROR: C:\DQTTMP\LOGOUT.EXE not copied.
|
||||
GOTO END
|
||||
:HVLOGOUT
|
||||
IF EXIST C:\DQTTMP\MAP.EXE GOTO HVMAP
|
||||
ECHO ERROR: C:\DQTTMP\MAP.EXE not copied. >> F:\DQTCMP\RUN.LOG
|
||||
ECHO ERROR: C:\DQTTMP\MAP.EXE not copied.
|
||||
GOTO END
|
||||
:HVMAP
|
||||
|
||||
IF "%LGNTPWD%"=="" GOTO NOPWD
|
||||
ECHO LGNTPWD is set; DQTC will relogin SUPERVISOR directly after the write test. >> F:\DQTCMP\RUN.LOG
|
||||
@@ -115,7 +148,7 @@ ECHO DQTC queued via DLYSTRT from C:\DQTTMP. >> F:\DQTCMP\RUN.LOG
|
||||
ECHO.
|
||||
ECHO DQTSTA Part 1 fertig.
|
||||
ECHO DQTC startet gleich von C:\DQTTMP und wartet dann auf den Linux-Quota-Teil.
|
||||
ECHO Wenn DQTC wartet: Linux quota setzen und dann im DOS J druecken.
|
||||
ECHO Wenn DQTC wartet: Linux quota fuer QUOTA und SYS setzen und dann im DOS J druecken.
|
||||
GOTO END
|
||||
|
||||
:PART2
|
||||
@@ -131,8 +164,8 @@ IF EXIST C:\DQTTMP\*.TXT COPY C:\DQTTMP\*.TXT F:\DQTCMP\DOS >> F:\DQTCMP\RUN.LOG
|
||||
IF EXIST C:\DQTTMP\*.TAG COPY C:\DQTTMP\*.TAG F:\DQTCMP\DOS >> F:\DQTCMP\RUN.LOG
|
||||
|
||||
ECHO DQTSTA PART2 summary > F:\DQTCMP\SUMMARY.TXT
|
||||
IF EXIST C:\DQTTMP\PASS.TAG ECHO PASS: DOS quota deny observed. >> F:\DQTCMP\SUMMARY.TXT
|
||||
IF EXIST C:\DQTTMP\FAIL.TAG ECHO FAIL: DOS quota deny was not observed. >> F:\DQTCMP\SUMMARY.TXT
|
||||
IF EXIST C:\DQTTMP\PASS.TAG ECHO PASS: DOS quota deny observed on QUOTA and SYS. >> F:\DQTCMP\SUMMARY.TXT
|
||||
IF EXIST C:\DQTTMP\FAIL.TAG ECHO FAIL: DOS quota deny was not observed on both volumes. >> F:\DQTCMP\SUMMARY.TXT
|
||||
IF NOT EXIST C:\DQTTMP\PASS.TAG IF NOT EXIST C:\DQTTMP\FAIL.TAG ECHO UNKNOWN: DQTC.BAT result tags missing. >> F:\DQTCMP\SUMMARY.TXT
|
||||
ECHO. >> F:\DQTCMP\SUMMARY.TXT
|
||||
ECHO DOS log files copied from C:\DQTTMP to F:\DQTCMP\DOS. >> F:\DQTCMP\SUMMARY.TXT
|
||||
@@ -145,7 +178,7 @@ GOTO END
|
||||
|
||||
:USAGE
|
||||
ECHO Usage: DQTSTA [PREP^|PART2]
|
||||
ECHO Ohne Parameter startet DQTSTA Part 1 und queued C:\DQTTMP\DQTC.BAT via DLYSTRT.
|
||||
ECHO Ohne Parameter startet DQTSTA Part 1 und installiert C:\DQTTMP\DQTC.BAT via DLYSTRT.
|
||||
ECHO DQTC wartet auf J/j/Y/y, damit der Linux-Quota-Schritt dazwischen laufen kann.
|
||||
GOTO END
|
||||
|
||||
|
||||
@@ -1,21 +1,20 @@
|
||||
# DOS quota write-deny smoke
|
||||
|
||||
This test proves the client-visible quota boundary with DOS board tools while
|
||||
keeping the authority split explicit:
|
||||
keeping the authority split explicit. It now tests both quota backends in one
|
||||
DOS handoff:
|
||||
|
||||
- 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.
|
||||
- `QUOTA` is mapped as `Q:` and uses the Linux quota backend.
|
||||
- `SYS` stays mapped as `F:` and uses the NWQUOTA metadata backend.
|
||||
|
||||
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.
|
||||
`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 the target volume and run:
|
||||
Login as `SUPERVISOR` on `SYS` and run:
|
||||
|
||||
```bat
|
||||
SET LGNTPWD=zefuqUVe
|
||||
@@ -23,28 +22,41 @@ F:
|
||||
DQTSTA
|
||||
```
|
||||
|
||||
`DQTSTA` creates:
|
||||
`DQTSTA` maps `Q:=QUOTA:` and creates:
|
||||
|
||||
- `F:\DQTTEST\NCPQFILL` for the data files
|
||||
- `Q:\DQTQUOTA\NCPQFILL` for the Linuxquota volume test files
|
||||
- `F:\DQTSYS\NCPQFILL` for the NWQUOTA metadata volume test 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:
|
||||
When DOS prints that `DQTC` is waiting, set quotas for `NOPASSUSER`. `QUOTA` can
|
||||
usually be set to 12 directly after the prepared directory was purged:
|
||||
|
||||
```sh
|
||||
./nwfs_ncpfs_userquota -S MARS -U SUPERVISOR -P 'zefuqUVe' \
|
||||
--volume QUOTA --object NOPASSUSER --type 1 --limit-4k 12
|
||||
```
|
||||
|
||||
For `SYS`, read the current usage and set the limit to `inuse4k + 12`, because
|
||||
`NOPASSUSER` may already own files on SYS:
|
||||
|
||||
```sh
|
||||
./nwfs_ncpfs_userquota -S MARS -U SUPERVISOR -P 'zefuqUVe' \
|
||||
--volume SYS --object NOPASSUSER --type 1 --get
|
||||
|
||||
./nwfs_ncpfs_userquota -S MARS -U SUPERVISOR -P 'zefuqUVe' \
|
||||
--volume SYS --object NOPASSUSER --type 1 --limit-4k <inuse4k+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:
|
||||
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:
|
||||
|
||||
```bat
|
||||
F:\DQTSTA.BAT PART2
|
||||
@@ -60,12 +72,5 @@ DQTZIP
|
||||
Expected summary:
|
||||
|
||||
```text
|
||||
PASS: DOS quota deny observed.
|
||||
PASS: DOS quota deny observed on QUOTA and SYS.
|
||||
```
|
||||
### 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.
|
||||
|
||||
Reference in New Issue
Block a user