Software /
code /
prosody
File
tests/test_util_queue.lua @ 8262:e6f3e440c843
tests: util.throttle: Fix time override to simply override util.time. Recent change bypasses current override method.
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Sat, 23 Sep 2017 23:32:08 +0100 |
parent | 7509:d4bd036e679b |
line wrap: on
line source
function new(new) do local q = new(10); assert_equal(q.size, 10); assert_equal(q:count(), 0); assert_is(q:push("one")); assert_is(q:push("two")); assert_is(q:push("three")); for i = 4, 10 do assert_is(q:push("hello")); assert_equal(q:count(), i, "count is not "..i.."("..q:count()..")"); end assert_equal(q:push("hello"), nil, "queue overfull!"); assert_equal(q:push("hello"), nil, "queue overfull!"); assert_equal(q:pop(), "one", "queue item incorrect"); assert_equal(q:pop(), "two", "queue item incorrect"); assert_is(q:push("hello")); assert_is(q:push("hello")); assert_equal(q:pop(), "three", "queue item incorrect"); assert_is(q:push("hello")); assert_equal(q:push("hello"), nil, "queue overfull!"); assert_equal(q:push("hello"), nil, "queue overfull!"); assert_equal(q:count(), 10, "queue count incorrect"); for _ = 1, 10 do assert_equal(q:pop(), "hello", "queue item incorrect"); end assert_equal(q:count(), 0, "queue count incorrect"); assert_is(q:push(1)); for i = 1, 1001 do assert_equal(q:pop(), i); assert_equal(q:count(), 0); assert_is(q:push(i+1)); assert_equal(q:count(), 1); end assert_equal(q:pop(), 1002); assert_is(q:push(1)); for i = 1, 1000 do assert_equal(q:pop(), i); assert_is(q:push(i+1)); end assert_equal(q:pop(), 1001); assert_equal(q:count(), 0); end do -- Test queues that purge old items when pushing to a full queue local q = new(10, true); for i = 1, 10 do q:push(i); end assert_equal(q:count(), 10); assert_is(q:push(11)); assert_equal(q:count(), 10); assert_equal(q:pop(), 2); -- First item should have been purged for i = 12, 32 do assert_is(q:push(i)); end assert_equal(q:count(), 10); assert_equal(q:pop(), 23); end end