Software /
code /
prosody
Annotate
tests/test_util_queue.lua @ 6813:b1615fa62e59
net/server_select: addclient: Check for failure correctly; remove wrapconnection call on failure
author | daurnimator <quae@daurnimator.com> |
---|---|
date | Wed, 18 Dec 2013 17:54:31 -0500 |
parent | 6732:b5cf091d8c45 |
child | 7507:11e8c605a591 |
rev | line source |
---|---|
6732
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
1 local new = require "util.queue".new; |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
2 |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
3 local q = new(10); |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
4 |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
5 assert(q.size == 10); |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
6 assert(q:count() == 0); |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
7 |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
8 assert(q:push("one")); |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
9 assert(q:push("two")); |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
10 assert(q:push("three")); |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
11 |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
12 for i = 4, 10 do |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
13 print("pushing "..i) |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
14 assert(q:push("hello")); |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
15 assert(q:count() == i, "count is not "..i.."("..q:count()..")"); |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
16 end |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
17 assert(q:push("hello") == nil, "queue overfull!"); |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
18 assert(q:push("hello") == nil, "queue overfull!"); |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
19 assert(q:pop() == "one", "queue item incorrect"); |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
20 assert(q:pop() == "two", "queue item incorrect"); |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
21 assert(q:push("hello")); |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
22 assert(q:push("hello")); |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
23 assert(q:pop() == "three", "queue item incorrect"); |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
24 assert(q:push("hello")); |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
25 assert(q:push("hello") == nil, "queue overfull!"); |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
26 assert(q:push("hello") == nil, "queue overfull!"); |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
27 |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
28 assert(q:count() == 10, "queue count incorrect"); |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
29 |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
30 for i = 1, 10 do |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
31 assert(q:pop() == "hello", "queue item incorrect"); |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
32 end |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
33 |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
34 assert(q:count() == 0, "queue count incorrect"); |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
35 |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
36 assert(q:push(1)); |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
37 for i = 1, 1001 do |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
38 assert(q:pop() == i); |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
39 assert(q:count() == 0); |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
40 assert(q:push(i+1)); |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
41 assert(q:count() == 1); |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
42 end |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
43 assert(q:pop() == 1002); |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
44 assert(q:push(1)); |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
45 for i = 1, 1000000 do |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
46 q:pop(); |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
47 q:push(i+1); |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
48 end |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
49 |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
50 -- Test queues that purge old items when pushing to a full queue |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
51 local q = new(10, true); |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
52 |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
53 for i = 1, 10 do |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
54 q:push(i); |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
55 end |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
56 |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
57 assert(q:count() == 10); |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
58 |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
59 assert(q:push(11)); |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
60 assert(q:count() == 10); |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
61 assert(q:pop() == 2); -- First item should have been purged |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
62 |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
63 for i = 12, 32 do |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
64 assert(q:push(i)); |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
65 end |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
66 |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
67 assert(q:count() == 10); |
b5cf091d8c45
tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
68 assert(q:pop() == 23); |