From 1b3091cd907fe7d866648cfb7aeb0e24a290f244 Mon Sep 17 00:00:00 2001 From: xificurC Date: Wed, 28 Aug 2024 17:23:20 +0200 Subject: [PATCH] [i/items] failure on reentrant transfer --- .../incseq/items_eager_impl_test.cljc | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/test/hyperfiddle/incseq/items_eager_impl_test.cljc b/test/hyperfiddle/incseq/items_eager_impl_test.cljc index c5efacb76..672621e56 100644 --- a/test/hyperfiddle/incseq/items_eager_impl_test.cljc +++ b/test/hyperfiddle/incseq/items_eager_impl_test.cljc @@ -428,9 +428,24 @@ _ (q ::none) _ (t/is (= ::none (q)))])) +(t/deftest failure-on-reentrant-transfer + (let [q (->mq) + (->box (let [ (->box true)] + (fn [step done] + (if () + (do ( false) (step) (d/empty-diff 0)) + (do (done) (throw (ex-info "boom" {}))))))) + items (spawn-ps q ) + [_in-step _in-done] (q) + _ (t/is (= :input-cancel (q))) + _ (t/is (= :items-step (q))) + _ (t/is (thrown? ExceptionInfo @items)) + _ (t/is (= :items-done (q))) + _ (q ::none) + _ (t/is (= ::none (q)))])) + ;; missing tests ;; - failures -;; - reentrant transfer ;; - after cancellation ;; - item* grow ;; - double cancel before termination