\r
doTest :: (TestState s i o) (IUTstep .t i o) .t (.t->.t) -> (.t,TestState s i o)\r
| gEq{|*|} s & gEq{|*|} o & genShow{|*|} s & genShow{|*|} i & genShow{|*|} o\r
-doTest ts=:{input,curState,spec,incons} step t reset\r
+doTest ts=:{input,curState,spec,incons,stop} step t reset\r
| isEmpty ts.curState\r
= (t, errorFound ts)\r
- | ts.nStep >= ts.maxLen || ts.nRej >= ts.maxLen\r
+ | ts.nStep >= ts.maxLen || ts.nRej >= ts.maxLen || stop curState\r
= doTest (resetState ts) step (reset t) reset\r
| ts.nPath >= ts.maxPath\r
| ts.nRej == 0 && ts.nTrun == 0\r