diff options
Diffstat (limited to 'spec/test_jobs.lua')
| -rw-r--r-- | spec/test_jobs.lua | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/spec/test_jobs.lua b/spec/test_jobs.lua index de36ab5..25faf6e 100644 --- a/spec/test_jobs.lua +++ b/spec/test_jobs.lua @@ -129,20 +129,20 @@ return { end) end }, - { "the gate runs four at a time and queues the rest", function() + { "the gate runs five at a time and queues the rest", function() with_jobs(function() local start, built = starter() local handles = {} - for _, name in ipairs({ "a", "b", "c", "d", "e", "f" }) do + for _, name in ipairs({ "a", "b", "c", "d", "e", "f", "g" }) do handles[#handles + 1] = assert(start(name)) end - assert(#built == 4, "the gate holds at four running, saw " .. #built) - assert(handles[5]:result() == nil, "a queued child has not settled") + assert(#built == 5, "the gate holds at five running, saw " .. #built) + assert(handles[6]:result() == nil, "a queued child has not settled") local results = jobs.await(handles, "all") - assert(#built == 6, "the queue drains as slots free up, saw " .. #built) - assert(#results == 6, "every child reports") - assert(results[5].text == "e" and results[6].text == "f", "queued children keep their place") + assert(#built == 7, "the queue drains as slots free up, saw " .. #built) + assert(#results == 7, "every child reports") + assert(results[6].text == "f" and results[7].text == "g", "queued children keep their place") end) end }, @@ -150,20 +150,20 @@ return { with_jobs(function() local start, built = starter() local handles = {} - for _, name in ipairs({ "a", "b", "c", "d", "e" }) do + for _, name in ipairs({ "a", "b", "c", "d", "e", "f" }) do handles[#handles + 1] = assert(start(name)) end - handles[5]:cancel() + handles[6]:cancel() - local result = handles[5]:result() + local result = handles[6]:result() assert(type(result) == "table", "a cancelled queued child settles immediately") assert(result.status == "cancelled", tostring(result.status)) assert(result.error == "cancelled before the child started", tostring(result.error)) - assert(#built == 4, "the queued child was never built") - assert(not contains(built, "e"), "the queued child was never built") + assert(#built == 5, "the queued child was never built") + assert(not contains(built, "f"), "the queued child was never built") - jobs.await({ handles[1], handles[2], handles[3], handles[4] }, "all") - assert(#built == 4, "a cancelled child does not start when a slot frees up") + jobs.await({ handles[1], handles[2], handles[3], handles[4], handles[5] }, "all") + assert(#built == 5, "a cancelled child does not start when a slot frees up") end) end }, @@ -202,16 +202,16 @@ return { with_jobs(function() local start, built, made = starter() local handles = {} - for _, name in ipairs({ "a", "b", "c", "d", "e" }) do + for _, name in ipairs({ "a", "b", "c", "d", "e", "f" }) do handles[#handles + 1] = assert(start(name, { settle = 5 })) end jobs.cancel_all() - for _, name in ipairs({ "a", "b", "c", "d" }) do + for _, name in ipairs({ "a", "b", "c", "d", "e" }) do assert(made[name]._cancel_requested, "running child " .. name .. " was not cancelled") end - assert(#built == 4, "cancel_all must not start the queued child") - assert(handles[5]:result().status == "cancelled", "the queued child settles cancelled") + assert(#built == 5, "cancel_all must not start the queued child") + assert(handles[6]:result().status == "cancelled", "the queued child settles cancelled") local results = jobs.await(handles, "all") for index, result in ipairs(results) do |
