Failing test: an exception in a stop script messes up cleanup
This commit is contained in:
parent
ce6cd58930
commit
928e48113f
|
@ -612,6 +612,32 @@
|
|||
)
|
||||
|
||||
(lambda ()
|
||||
;; Goal: no matter the circumstances (e.g. exception in a
|
||||
;; stop script), we will never retract an assertion more or
|
||||
;; fewer than the correct number of times.
|
||||
|
||||
;; Test cleanup after exception in stop script
|
||||
;;
|
||||
;; Correct output:
|
||||
;;
|
||||
;; inner gone
|
||||
;; outer gone
|
||||
;; middle gone
|
||||
;;
|
||||
;; (or some permutation of these) plus an exception report for the division by zero.
|
||||
|
||||
(assertion-struct layer (name))
|
||||
|
||||
(spawn (define root-facet (current-facet))
|
||||
(assert (layer 'outer))
|
||||
(on-start (react (assert (layer 'middle))
|
||||
(on-start (flush!) (flush!) (stop-facet root-facet))
|
||||
(on-stop (/ 1 0))
|
||||
(on-start (react (assert (layer 'inner)))))))
|
||||
|
||||
(spawn (on (retracted (layer $x)) (printf "~a gone\n" x))))
|
||||
|
||||
#;(lambda ()
|
||||
(spawn #:name 'factory-1
|
||||
(on (asserted (list 'X 1))
|
||||
(spawn #:name 'service-1
|
||||
|
|
Loading…
Reference in New Issue