1
0
mirror of https://github.com/simh/simh.git synced 2026-02-26 16:54:22 +00:00

simulator tests: Fix test setup to tolerate very busy or slow host systems

Adjust the RUNLIMIT to specify instructions instead of wall clock time.
This commit is contained in:
Mark Pizzolato
2022-11-12 15:34:24 -10:00
parent bfc5232f66
commit f48f0de9a5
5 changed files with 48 additions and 48 deletions

View File

@@ -14,7 +14,7 @@ set mt debug=cmd;data;detail;exp
set dsk debug=cmd;data;detail;exp
:: Limit maximum diagnostic execution time
runlimit 2 minutes
runlimit 50M instructions
set on
on error ignore
on runtime echof "\r\n*** Test Runtime Limit %SIM_RUNLIMIT% %SIM_RUNLIMIT_UNITS% Exceeded ***\r\n"; exit 1

View File

@@ -25,8 +25,8 @@ break 13030
de asw 22
boot -q ptr
go -q 13041
if (PC != 013030 || AC != 000000) echof "Failed."; ex pc; ex ac; exit 1
echof Passed"
if (PC != 013030 || AC != 000000) echof "Failed after running for %SIM_RUNTIME% %SIM_RUNTIME_UNITS%."; ex pc; ex ac; exit 1
echof Passed after running for %SIM_RUNTIME% %SIM_RUNTIME_UNITS%"
:: DZM, DAC, ISZ, JMP, CAL, JMS, XCT, Autoindex, Indirect, Time Clock, PI, DBR (D02A)
echof -n "Running MAINDEC-9A-D02A PDP-9 Instruction Test 2"
@@ -39,8 +39,8 @@ break 6256
de asw 22
boot -q ptr
go -q 6265
if (PC != 006256 || AC != 000000) echof "Failed."; ex pc; ex ac; exit 1
echof "Passed"
if (PC != 006256 || AC != 000000) echof "Failed after running for %SIM_RUNTIME% %SIM_RUNTIME_UNITS%."; ex pc; ex ac; exit 1
echof "Passed after running for %SIM_RUNTIME% %SIM_RUNTIME_UNITS%"
:: JMP Self (D0DB)
echof -n "Running MAINDEC-9A-D0DB PDP-9 JMP-Self Test"
@@ -53,8 +53,8 @@ break 17521
de asw 17500
boot -q ptr
go -q 17500
if (PC != 017521 || AC != 000000) echof "Failed."; ex pc; ex ac; exit 1
echof "Passed"
if (PC != 017521 || AC != 000000) echof "Failed after running for %SIM_RUNTIME% %SIM_RUNTIME_UNITS%."; ex pc; ex ac; exit 1
echof "Passed after running for %SIM_RUNTIME% %SIM_RUNTIME_UNITS%"
:: JMP Self (D0EA)
echof -n "Running MAINDEC-9A-D0EA PDP-9 JMP Y - Interrupt Test"
@@ -67,8 +67,8 @@ de asw 17400
boot -q ptr
break 17474
go -q 17400
if (PC != 017474) echof "Failed."; ex pc; ex ac; exit 1
echof "Passed"
if (PC != 017474) echof "Failed after running for %SIM_RUNTIME% %SIM_RUNTIME_UNITS%."; ex pc; ex ac; exit 1
echof "Passed after running for %SIM_RUNTIME% %SIM_RUNTIME_UNITS%"
:: JMP Self (D0FA)
echof -n "Running MAINDEC-9A-D0FA PDP-9 JMS Y - Interrupt Test"
@@ -81,8 +81,8 @@ break 17512
de asw 17400
boot -q ptr
go -q 17400
if (PC != 017512) echof "Failed."; ex pc; ex ac; exit 1
echof "Passed"
if (PC != 017512) echof "Failed after running for %SIM_RUNTIME% %SIM_RUNTIME_UNITS%."; ex pc; ex ac; exit 1
echof "Passed after running for %SIM_RUNTIME% %SIM_RUNTIME_UNITS%"
:: JMP Self (D0BA)
echof -n "Running MAINDEC-9A-D0BA PDP-9 ISZ Test"
@@ -95,10 +95,10 @@ break 144
de asw 100
boot -q ptr
go -q 100
if (PC != 000144 || AC != 000000) echof "Failed."; ex pc; ex ac; exit 1
echof "Passed"
if (PC != 000144 || AC != 000000) echof "Failed after running for %SIM_RUNTIME% %SIM_RUNTIME_UNITS%."; ex pc; ex ac; exit 1
echof "Passed after running for %SIM_RUNTIME% %SIM_RUNTIME_UNITS%"
echof
echof "!! All Tests Passed !!"
echof "!! All Tests Passed after running for %SIM_RUNTIME% %SIM_RUNTIME_UNITS% !!"
echof
exit 0

View File

@@ -7,7 +7,7 @@
cd %~p0
:: Limit maximum diagnostic execution time
runlimit 2 minutes
runlimit 1500M instructions
set on
on error ignore
on runtime echof "\r\n*** Test Runtime Limit %SIM_RUNLIMIT% %SIM_RUNLIMIT_UNITS% Exceeded ***\n"; exit 1
@@ -28,9 +28,9 @@ load diags/maindec-8e-d0ab-pb.bin
dep 5276 7402
dep sr 07777
go -q 200
if (PC != 0147 || AC != 0) echof "MAINDEC-8/E-D0AB failed."; exit 1
if (PC != 0147 || AC != 0) echof "MAINDEC-8/E-D0AB failed after running for %SIM_RUNTIME% %SIM_RUNTIME_UNITS%."; exit 1
go -q
if (PC != 05277) echof "MAINDEC-8/E-D0AB failed."; exit 1
if (PC != 05277) echof "MAINDEC-8/E-D0AB failed after running for %SIM_RUNTIME% %SIM_RUNTIME_UNITS%."; exit 1
echof "passed"
:: Autoindexing, Indirect addressing, and the DCA instruction with
@@ -44,7 +44,7 @@ load diags/maindec-8e-d0bb-pb.bin
dep 3740 7402
dep sr 0
go -q 200
if (PC != 03741) echof "MAINDEC-8/E-D0BB failed."; exit 1
if (PC != 03741) echof "MAINDEC-8/E-D0BB failed after running for %SIM_RUNTIME% %SIM_RUNTIME_UNITS%."; exit 1
echof "passed"
:: The ADDER test
@@ -56,9 +56,9 @@ dep 4561 7402
:: And ask the tests to be quiet, test extended (banked) memory.
dep sr 0200
go -q 200
if (PC != 04622) echof "MAINDEC-8/E-D0CC failed."; exit 1
if (PC != 04622) echof "MAINDEC-8/E-D0CC failed after running for %SIM_RUNTIME% %SIM_RUNTIME_UNITS%."; exit 1
echof
echof "** PDP-8: Adder test passed."
echof "** PDP-8: Adder test passed after running for %SIM_RUNTIME% %SIM_RUNTIME_UNITS%."
:: Random AND tests
echof -n "** PDP-8: Random AND test: "
@@ -66,8 +66,8 @@ load diags/maindec-8e-d0db-pb.bin
:: Halt after one 4096 loop pass, suppress output
dep sr 02400
go -q 200
if (PC != 00355) echof "MAINDEC-8/E-D0DB failed."; exit 1
echof "passed."
if (PC != 00355) echof "MAINDEC-8/E-D0DB failed after running for %SIM_RUNTIME% %SIM_RUNTIME_UNITS%."; exit 1
echof "passed after running for %SIM_RUNTIME% %SIM_RUNTIME_UNITS%."
:: Random TAD tests
echof -n "** PDP-8: Random TAD test: "
@@ -78,8 +78,8 @@ dep 6743 7402
:: Suppress output
dep sr 00400
go -q 200
if (PC != 06744) echof "MAINDEC-8/E-D0EB failed."; exit 1
echof "passed."
if (PC != 06744) echof "MAINDEC-8/E-D0EB failed after running for %SIM_RUNTIME% %SIM_RUNTIME_UNITS% ."; exit 1
echof "passed after running for %SIM_RUNTIME% %SIM_RUNTIME_UNITS%."
:: Random ISZ tests
:: Bit more of a challenge: cant just put a HLT instruction to
@@ -88,8 +88,8 @@ if (SIM_REGEX_TYPE == "") echof "Missing Regular Expression support - skipping R
echof "** PDP-8: Random ISZ test: "
load diags/maindec-8e-d0fc-pb.bin
dep sr 0
expect -r [25] "\r\nFC" echof; echof "** PDP-8: Random ISZ test: passed."
expect -r "F [0-7]{4}" echof; echof "** PDP-8: Random ISZ test: MAINDEC-8/E-D0FC failed."; exit 1
expect -r [25] "\r\nFC" echof; echof "** PDP-8: Random ISZ test: passed after running for %SIM_RUNTIME% %SIM_RUNTIME_UNITS%."
expect -r "F [0-7]{4}" echof; echof "** PDP-8: Random ISZ test: MAINDEC-8/E-D0FC failed after running for %SIM_RUNTIME% %SIM_RUNTIME_UNITS%."; exit 1
go -q 200
:ISZ_DONE
@@ -100,10 +100,10 @@ load diags/maindec-8e-d0gc-pb.bin
dep 0404 7402
dep sr 0
go -q 200
if (PC != 0405) echof "MAINDEC-8/E-D0GC failed."; exit 1
echof "passed."
if (PC != 0405) echof "MAINDEC-8/E-D0GC failed after running for %SIM_RUNTIME% %SIM_RUNTIME_UNITS%."; exit 1
echof "passed after running for %SIM_RUNTIME% %SIM_RUNTIME_UNITS%."
echof
echof "!! All Tests Passed !!"
echof "!! All Tests Passed after running for %SIM_RUNTIME% %SIM_RUNTIME_UNITS% !!"
echof
exit 0

View File

@@ -23,7 +23,7 @@ set env HOST=sel32
;======================================================
;
; Set run limit of 2 minutes
set runlimit 2 minutes
set runlimit 600M instructions
set on
on error ignore
on runtime echof "\r\n*** FAILED - SEL32 Test Runtime Limit %SIM_RUNLIMIT% %SIM_RUNLIMIT_UNITS% Exceeded ***\n"; exit 1
@@ -214,7 +214,7 @@ set cpu idle
;bo dma0
;
; Go to simh on completion of script
expect "DOL>" echof "\r\n*** PASSED - SEL32 Autobatch Diagnostic Successfully Completed\n"; exit 0
expect "DOL>" echof "\r\n*** PASSED - SEL32 Autobatch Diagnostic Successfully Completed after running for %SIM_RUNTIME% %SIM_RUNTIME_UNITS%\n"; exit 0
; Boot from mag tape
bo mta0
;det all

View File

@@ -18,10 +18,10 @@
#set cpu hist=20000
#break A3B4 SHOW HIST=40
cd %~p0
set runlimit 2 minutes
set runlimit 600M instructions
set on
on error ignore
on runtime echof "\r\n*** Test Runtime Limit %SIM_RUNLIMIT% %SIM_RUNLIMIT_UNITS% Exceeded ***\n"; exit 1
on runtime echof "\r\n*** Test Runtime Limit %SIM_RUNLIMIT% %SIM_RUNLIMIT_UNITS% Exceeded after running %SIM_RUNTIME% %SIM_RUNTIME_UNITS% ***\n"; exit 1
set env DIAG_QUIET_MODE=0
if ("%1" == "-v") set console notelnet
@@ -43,8 +43,8 @@ echo Running Hardware Core Test (EHKAA)
if not exist ehkaa-uv1.exe echof "\r\nMISSING - Diagnostic '%~p0ehkaa-uv1.exe' is missing\n"; exit 1
load ehkaa-uv1.exe
go -q 200
if (PC != 0x1150DA51) echof "\r\n*** FAILED - %SIM_NAME% Hardware Core Instruction test EHKAA\n"; exit 1
else echof "\r\n*** PASSED - %SIM_NAME% Hardware Core Instruction test EHKAA\n"; exit 0
if (PC != 0x1150DA51) echof "\r\n*** FAILED - %SIM_NAME% Hardware Core Instruction test EHKAA after running for %SIM_RUNTIME% %SIM_RUNTIME_UNITS%\n"; exit 1
else echof "\r\n*** PASSED - %SIM_NAME% Hardware Core Instruction test EHKAA after running for %SIM_RUNTIME% %SIM_RUNTIME_UNITS%\n"; exit 0
:DIAG_INFOSERVER100
:DIAG_INFOSERVER1000
@@ -59,8 +59,8 @@ echo Running Hardware Core Test (EHKAA)
if not exist ehkaa.exe echof "\r\nMISSING - Diagnostic '%~p0ehkaa.exe' is missing\n"; exit 1
load ehkaa.exe
go -q 200
if (PC != 0x80018AD1) echof "\r\n*** FAILED - %SIM_NAME% Hardware Core Instruction test EHKAA\n"; exit 1
else echof "\r\n*** PASSED - %SIM_NAME% Hardware Core Instruction test EHKAA\n"; exit 0
if (PC != 0x80018AD1) echof "\r\n*** FAILED - %SIM_NAME% Hardware Core Instruction test EHKAA after running for %SIM_RUNTIME% %SIM_RUNTIME_UNITS%\n"; exit 1
else echof "\r\n*** PASSED - %SIM_NAME% Hardware Core Instruction test EHKAA after running for %SIM_RUNTIME% %SIM_RUNTIME_UNITS%\n"; exit 0
:DIAG_VAX730
:DIAG_VAX750
@@ -71,9 +71,9 @@ echo Running Hardware Core Test (EVKAA)
if not exist evkaa.exe echof "\r\nMISSING - Diagnostic '%~p0evkaa.exe' is missing\n"; exit 1
load evkaa.exe
expect "Hit any key to continue" send "\r"; go -q
expect [2] "done!" echof "\r\n*** PASSED - %SIM_NAME% Hardware Core Instruction test EVKAA\n"; goto extended_tests
expect [2] "done!" echof "\r\n*** PASSED - %SIM_NAME% Hardware Core Instruction test EVKAA after running for %SIM_RUNTIME% %SIM_RUNTIME_UNITS%\n"; goto extended_tests
go -q 200
echof "\r\n*** FAILED - %SIM_NAME% Hardware Core Instruction test EVKAA\n"
echof "\r\n*** FAILED - %SIM_NAME% Hardware Core Instruction test EVKAA after running for %SIM_RUNTIME% %SIM_RUNTIME_UNITS%\n"
exit 1
:extended_tests
@@ -92,7 +92,7 @@ call do_test EVKAB "VAX Basic Instructions Exerciser"
call do_test EVKAC "VAX Floating Point Instructions Exerciser"
call do_test EVKAD "VAX Compatibility Mode Instructions Exerciser"
#call do_test EVKAE "VAX Privileged Architecture Exerciser"
echof "\n*** All Diagnostic Supervisor tests PASSED ***\n"
echof "\n*** All Diagnostic Supervisor tests PASSED after running for %SIM_RUNTIME% %SIM_RUNTIME_UNITS% ***\n"
exit 0
:VAX750
@@ -104,7 +104,7 @@ call do_test EVKAB "VAX Basic Instructions Exerciser"
call do_test EVKAC "VAX Floating Point Instructions Exerciser"
call do_test EVKAD "VAX Compatibility Mode Instructions Exerciser"
#call do_test EVKAE "VAX Privileged Architecture Exerciser"
echof "\n*** All Diagnostic Supervisor tests PASSED ***\n"
echof "\n*** All Diagnostic Supervisor tests PASSED after running for %SIM_RUNTIME% %SIM_RUNTIME_UNITS% ***\n"
exit 0
:VAX780
@@ -116,7 +116,7 @@ call do_test EVKAB "VAX Basic Instructions Exerciser"
call do_test EVKAC "VAX Floating Point Instructions Exerciser"
call do_test EVKAD "VAX Compatibility Mode Instructions Exerciser"
#call do_test EVKAE "VAX Privileged Architecture Exerciser"
echof "\n*** All Diagnostic Supervisor tests PASSED ***\n"
echof "\n*** All Diagnostic Supervisor tests PASSED after running for %SIM_RUNTIME% %SIM_RUNTIME_UNITS% ***\n"
exit 0
:VAX8200
@@ -125,12 +125,12 @@ expect "DS> " send "ATTACH KA820 HUB KA0 4096 0\r"; go -q
expect "DS> " send "ATTACH DWBUA HUB DW0 4 5\r"; go -q
# VAX 8200 simulates the floating point accelerator which then
# inspires tests to use it. This takes more time.
set runlimit 3 minutes
call Common
set runlimit 600M instructions # Override prior runlimit
call Common
call do_test EVKAB "VAX Basic Instructions Exerciser"
call do_test EVKAC "VAX Floating Point Instructions Exerciser"
#call do_test EVKAE "VAX Privileged Architecture Exerciser"
echof "\n*** All Diagnostic Supervisor tests PASSED ***\n"
echof "\n*** All Diagnostic Supervisor tests PASSED after running for %SIM_RUNTIME% %SIM_RUNTIME_UNITS% ***\n"
exit 0
:VAX8600
@@ -142,7 +142,7 @@ call do_test EVKAB "VAX Basic Instructions Exerciser"
call do_test EVKAC "VAX Floating Point Instructions Exerciser"
call do_test EVKAD "VAX Compatibility Mode Instructions Exerciser"
#call do_test EVKAE "VAX Privileged Architecture Exerciser"
echof "\n*** All Diagnostic Supervisor tests PASSED ***\n"
echof "\n*** All Diagnostic Supervisor tests PASSED after running for %SIM_RUNTIME% %SIM_RUNTIME_UNITS% ***\n"
exit 0
:Common
@@ -173,6 +173,6 @@ expect "DS> "
if (DIAG_QUIET_MODE) echof "\nRunning - %DIAG_DESC% %DIAG_TEST%\n"
send "RUN %DIAG_TEST%\r"
go -q
if (DIAG_ERRORS > 0) echof "\n*** FAILED - %DIAG_DESC% %DIAG_TEST%\n"; exit 1
if (DIAG_QUIET_MODE) echof "\n*** PASSED - %DIAG_DESC% %DIAG_TEST%\n"
if (DIAG_ERRORS > 0) echof "\n*** FAILED - %DIAG_DESC% %DIAG_TEST% after running for %SIM_RUNTIME% %SIM_RUNTIME_UNITS%\n"; exit 1
if (DIAG_QUIET_MODE) echof "\n*** PASSED - %DIAG_DESC% %DIAG_TEST% after running for %SIM_RUNTIME% %SIM_RUNTIME_UNITS%\n"
return