mirror of
https://git.code.sf.net/p/ngspice/ngspice
synced 2026-09-03 18:59:44 +02:00
Paranoia_Parallel: a test suite for more than 100 test circuits,
running in parallel on a multi-core machine (12 min execution time on a i9 9900, ngspice compiled with gcc, debug mode enabled. Linux with Valgrind and Parallel are required.
This commit is contained in:
committed by
Holger Vogt
parent
2988b5db66
commit
d881158a41
@@ -0,0 +1,150 @@
|
||||
Test sequences for ngspice control structures
|
||||
*vectors are used (except foreach)
|
||||
*start in interactive mode
|
||||
|
||||
.control
|
||||
|
||||
* test for while, repeat, if, break
|
||||
let loop = 0
|
||||
while loop < 4
|
||||
let index = 0
|
||||
repeat
|
||||
let index = index + 1
|
||||
if index > 4
|
||||
break
|
||||
end
|
||||
end
|
||||
echo index "$&index" loop "$&loop"
|
||||
let loop = loop + 1
|
||||
end
|
||||
|
||||
|
||||
* test sequence for while, dowhile
|
||||
let loop = 0
|
||||
echo
|
||||
echo enter loop with "$&loop"
|
||||
dowhile loop < 3
|
||||
echo within dowhile loop "$&loop"
|
||||
let loop = loop + 1
|
||||
end
|
||||
echo after dowhile loop "$&loop"
|
||||
echo
|
||||
let loop = 0
|
||||
while loop < 3
|
||||
echo within while loop "$&loop"
|
||||
let loop = loop + 1
|
||||
end
|
||||
echo after while loop "$&loop"
|
||||
let loop = 3
|
||||
echo
|
||||
echo enter loop with "$&loop"
|
||||
dowhile loop < 3
|
||||
echo within dowhile loop "$&loop" ; output expected
|
||||
let loop = loop + 1
|
||||
end
|
||||
echo after dowhile loop "$&loop"
|
||||
echo
|
||||
let loop = 3
|
||||
while loop < 3
|
||||
echo within while loop "$&loop" ; no output expected
|
||||
let loop = loop + 1
|
||||
end
|
||||
echo after while loop "$&loop"
|
||||
|
||||
|
||||
* test sequence for foreach
|
||||
echo
|
||||
foreach outvar 0 0.5 1 1.5
|
||||
echo parameters: $outvar ; foreach parameters are variables, not vectors!
|
||||
end
|
||||
|
||||
* test for if ... else ... end
|
||||
echo
|
||||
let loop = 0
|
||||
let index = 1
|
||||
dowhile loop < 10
|
||||
let index = index * 2
|
||||
if index < 128
|
||||
echo "$&index" lt 128
|
||||
else
|
||||
echo "$&index" ge 128
|
||||
end
|
||||
let loop = loop + 1
|
||||
end
|
||||
|
||||
* simple test for label, goto
|
||||
echo
|
||||
let loop = 0
|
||||
label starthere
|
||||
echo start "$&loop"
|
||||
let loop = loop + 1
|
||||
if loop < 3
|
||||
goto starthere
|
||||
end
|
||||
echo end "$&loop"
|
||||
|
||||
* test for label, nested goto
|
||||
echo
|
||||
let loop = 0
|
||||
label starthere1
|
||||
echo start nested "$&loop"
|
||||
let loop = loop + 1
|
||||
if loop < 3
|
||||
if loop < 3
|
||||
goto starthere1
|
||||
end
|
||||
end
|
||||
echo end "$&loop"
|
||||
|
||||
* test for label, goto
|
||||
echo
|
||||
let index = 0
|
||||
label starthere2
|
||||
let loop = 0
|
||||
echo We are at start with index "$&index" and loop "$&loop"
|
||||
if index < 6
|
||||
label inhere
|
||||
let index = index + 1
|
||||
if loop < 3
|
||||
let loop = loop + 1
|
||||
if index > 1
|
||||
echo jump2
|
||||
goto starthere2
|
||||
end
|
||||
end
|
||||
echo jump
|
||||
goto inhere
|
||||
end
|
||||
echo We are at end with index "$&index" and loop "$&loop"
|
||||
|
||||
* test goto in while loop
|
||||
echo
|
||||
let loop = 0
|
||||
if 1 ; outer loop to allow nested forward label 'endlabel'
|
||||
while loop < 10
|
||||
if loop > 5
|
||||
echo jump
|
||||
goto endlabel
|
||||
end
|
||||
let loop = loop + 1
|
||||
end
|
||||
echo before ; never reached
|
||||
label endlabel
|
||||
echo after "$&loop"
|
||||
end
|
||||
|
||||
*test for using variables
|
||||
* simple test for label, goto
|
||||
echo
|
||||
set loop = 0
|
||||
label starthe
|
||||
echo start $loop
|
||||
let loop = $loop + 1 ; expression needs vector at lhs
|
||||
set loop = "$&loop" ; convert vector contents to variable
|
||||
if $loop < 3
|
||||
goto starthe
|
||||
end
|
||||
echo end $loop
|
||||
|
||||
quit
|
||||
.endc
|
||||
Reference in New Issue
Block a user