SYMBOL: verbose-tests?
t verbose-tests? set-global
+SYMBOL: restartable-tests?
+t restartable-tests? set-global
+
: <test-failure> ( error experiment path line# -- test-failure )
test-failure new
swap >>line#
<PRIVATE
-: failure ( error experiment file line# -- )
+: failure ( error experiment path line# -- )
"--> test failed!" print
<test-failure> test-failures get push
notify-error-observers ;
dup current-test-file [
test-failures get current-test-file get +test-failure+ delete-file-errors
'[ _ run-file ] [
- dup compute-restarts empty? [
- file-failure
- ] [
- rethrow
- ] if
+ restartable-tests? get
+ [ dup compute-restarts empty? not ] [ f ] if [
+ "Continue running tests" over 2array 1array
+ rethrow-restarts
+ ] when [ file-failure ] when*
] recover
] with-variable ;
: do-all ( -- )
f parser-quiet? set-global
+ f restartable-tests? set-global
".." [
run-mason-rc check-user-init-errors [ 1 exit ] when
bootstrap-time get boot-time-file to-file