Software /
code /
prosody
Diff
spec/util_async_spec.lua @ 8616:a15c891c6232
util.async: ensure change in e77b37de482e applies after out-of-loop resume also
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Sat, 17 Mar 2018 17:28:07 +0000 |
parent | 8615:e77b37de482e |
child | 8617:fafb4036771c |
line wrap: on
line diff
--- a/spec/util_async_spec.lua Sat Mar 17 14:54:48 2018 +0000 +++ b/spec/util_async_spec.lua Sat Mar 17 17:28:07 2018 +0000 @@ -180,6 +180,31 @@ assert.spy(runner.watchers.error).was.called(1); assert.equal(last_item, "two"); end); + + it("should continue to process work items during resume", function () + local wait, done, last_item; + local runner_func = spy.new(function (item) + if item == "error" then + error("test error"); + elseif item == "wait-error" then + wait, done = async.waiter(); + wait(); + error("test error"); + end + last_item = item; + end); + local runner = async.runner(runner_func, { error = spy.new(function () end) }); + runner:enqueue("one"); + runner:enqueue("wait-error"); + runner:enqueue("two"); + runner:run(); + done(); + assert.equal(r.state, "ready"); + assert.equal(r.state, r.notified_state); + assert.spy(runner_func).was.called(3); + assert.spy(runner.watchers.error).was.called(1); + assert.equal(last_item, "two"); + end); end); end); describe("#waiter", function()