Skip to content

Commit 840e5f4

Browse files
committed
FIXUP: Release all taken tasks on start
Squash duplicated tests.
1 parent 6083e71 commit 840e5f4

File tree

6 files changed

+61
-117
lines changed

6 files changed

+61
-117
lines changed

t/010-fifo.t

Lines changed: 2 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ local state = require('queue.abstract.state')
1010

1111
local engine = os.getenv('ENGINE') or 'memtx'
1212

13+
local common = require('t.common')
1314
local tnt = require('t.tnt')
1415
tnt.cfg{}
1516

@@ -292,35 +293,7 @@ test:test('if_not_exists test', function(test)
292293
test:isnt(tube, tube_new, "if_not_exists if tube doesn't exists")
293294
end)
294295

295-
test:test('Get tasks by state test', function(test)
296-
test:plan(2)
297-
local tube = queue.create_tube('test_task_it', 'fifo')
298-
299-
for i = 1, 10 do
300-
tube:put('test_data' .. tostring(i))
301-
end
302-
for i = 1, 4 do
303-
tube:take(0.001)
304-
end
305-
306-
local count_taken = 0
307-
local count_ready = 0
308-
309-
for _, task in tube.raw:tasks_by_state(state.READY) do
310-
if task[2] == state.READY then
311-
count_ready = count_ready + 1
312-
end
313-
end
314-
315-
for _, task in tube.raw:tasks_by_state(state.TAKEN) do
316-
if task[2] == state.TAKEN then
317-
count_taken = count_taken + 1
318-
end
319-
end
320-
321-
test:is(count_ready, 6, 'Check tasks count in a ready state')
322-
test:is(count_taken, 4, 'Check tasks count in a taken state')
323-
end)
296+
test:test('get tasks by state', common.test_task_by_state, 'fifo')
324297

325298
tnt.finish()
326299
os.exit(test:check() and 0 or 1)

t/020-fifottl.t

Lines changed: 2 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ local state = require('queue.abstract.state')
99

1010
local qc = require('queue.compat')
1111

12+
local common = require('t.common')
1213
local tnt = require('t.tnt')
1314
tnt.cfg{}
1415

@@ -262,35 +263,7 @@ test:test('buried task in a dropped queue', function(test)
262263
test:ok(true, 'queue does not hang')
263264
end)
264265

265-
test:test('Get tasks by state test', function(test)
266-
test:plan(2)
267-
local tube = queue.create_tube('test_task_it', 'fifottl')
268-
269-
for i = 1, 10 do
270-
tube:put('test_data' .. tostring(i))
271-
end
272-
for i = 1, 4 do
273-
tube:take(0.001)
274-
end
275-
276-
local count_taken = 0
277-
local count_ready = 0
278-
279-
for _, task in tube.raw:tasks_by_state(state.READY) do
280-
if task[2] == state.READY then
281-
count_ready = count_ready + 1
282-
end
283-
end
284-
285-
for _, task in tube.raw:tasks_by_state(state.TAKEN) do
286-
if task[2] == state.TAKEN then
287-
count_taken = count_taken + 1
288-
end
289-
end
290-
291-
test:is(count_ready, 6, 'Check tasks count in a ready state')
292-
test:is(count_taken, 4, 'Check tasks count in a taken state')
293-
end)
266+
test:test('get tasks by state', common.test_task_by_state, 'fifottl')
294267

295268
tnt.finish()
296269
os.exit(test:check() and 0 or 1)

t/030-utube.t

Lines changed: 2 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ test:plan(12)
88
local queue = require('queue')
99
local state = require('queue.abstract.state')
1010

11+
local common = require('t.common')
1112
local tnt = require('t.tnt')
1213
tnt.cfg{}
1314

@@ -156,35 +157,7 @@ test:test('if_not_exists test', function(test)
156157
test:isnt(tube, tube_new, "if_not_exists if tube doesn't exists")
157158
end)
158159

159-
test:test('Get tasks by state test', function(test)
160-
test:plan(2)
161-
local tube = queue.create_tube('test_task_it', 'utube')
162-
163-
for i = 1, 10 do
164-
tube:put('test_data' .. tostring(i), { utube = i })
165-
end
166-
for i = 1, 4 do
167-
tube:take(0.001)
168-
end
169-
170-
local count_taken = 0
171-
local count_ready = 0
172-
173-
for _, task in tube.raw:tasks_by_state(state.READY) do
174-
if task[2] == state.READY then
175-
count_ready = count_ready + 1
176-
end
177-
end
178-
179-
for _, task in tube.raw:tasks_by_state(state.TAKEN) do
180-
if task[2] == state.TAKEN then
181-
count_taken = count_taken + 1
182-
end
183-
end
184-
185-
test:is(count_ready, 6, 'Check tasks count in a ready state')
186-
test:is(count_taken, 4, 'Check tasks count in a taken state')
187-
end)
160+
test:test('get tasks by state', common.test_task_by_state, 'utube')
188161

189162
tnt.finish()
190163
os.exit(test:check() and 0 or 1)

t/040-utubettl.t

Lines changed: 2 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ local state = require('queue.abstract.state')
1010

1111
local qc = require('queue.compat')
1212

13+
local common = require('t.common')
1314
local tnt = require('t.tnt')
1415
tnt.cfg{}
1516

@@ -257,35 +258,7 @@ test:test('ttl after delay test', function(test)
257258
test:is(task.ttr, TTR * 1000000, 'check TTR after release')
258259
end)
259260

260-
test:test('Get tasks by state test', function(test)
261-
test:plan(2)
262-
local tube = queue.create_tube('test_task_it', 'utubettl')
263-
264-
for i = 1, 10 do
265-
tube:put('test_data' .. tostring(i), { utube = i })
266-
end
267-
for i = 1, 4 do
268-
tube:take(0.001)
269-
end
270-
271-
local count_taken = 0
272-
local count_ready = 0
273-
274-
for _, task in tube.raw:tasks_by_state(state.READY) do
275-
if task[2] == state.READY then
276-
count_ready = count_ready + 1
277-
end
278-
end
279-
280-
for _, task in tube.raw:tasks_by_state(state.TAKEN) do
281-
if task[2] == state.TAKEN then
282-
count_taken = count_taken + 1
283-
end
284-
end
285-
286-
test:is(count_ready, 6, 'Check tasks count in a ready state')
287-
test:is(count_taken, 4, 'Check tasks count in a taken state')
288-
end)
261+
test:test('get tasks by state', common.test_task_by_state, 'utubettl')
289262

290263
tnt.finish()
291264
os.exit(test:check() and 0 or 1)

t/100-limfifottl.t

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,14 @@ local state = require('queue.abstract.state')
77

88
local engine = os.getenv('ENGINE') or 'memtx'
99

10+
local common = require('t.common')
1011
local tnt = require('t.tnt')
1112
tnt.cfg{}
1213

1314
local test = require('tap').test()
1415

1516
if engine == 'memtx' then
16-
test:plan(9)
17+
test:plan(10)
1718

1819
test:ok(rawget(box, 'space'), 'box started')
1920
test:ok(queue, 'queue is loaded')
@@ -61,6 +62,8 @@ if engine == 'memtx' then
6162
test:ok(unlim_tube:put{1}, 'task 1 was put')
6263
test:ok(unlim_tube:put{2}, 'task 2 was put')
6364
end)
65+
66+
test:test('Get tasks by state', common.test_task_by_state, 'limfifottl')
6467
else
6568
test:plan(1)
6669
local ok = pcall(queue.create_tube, 'unsupported_engine', 'limfifottl', { engine = engine })

t/common.lua

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
--
2+
-- Common code to reuse for testing different drivers.
3+
--
4+
5+
local queue = require('queue')
6+
local state = require('queue.abstract.state')
7+
8+
local common = {}
9+
10+
--
11+
-- Usage:
12+
--
13+
-- test:test('get tasks by state', common.test_task_by_state, 'fifo')
14+
--
15+
function common.test_task_by_state(test, driver)
16+
test:plan(2)
17+
local tube = queue.create_tube('test_task_it', driver)
18+
19+
for i = 1, 10 do
20+
local put_opts
21+
if driver == 'utube' or driver == 'utubettl' then
22+
put_opts = {utube = i}
23+
end
24+
tube:put('test_data' .. tostring(i), put_opts)
25+
end
26+
for i = 1, 4 do
27+
tube:take(0.001)
28+
end
29+
30+
local count_ready = 0
31+
local count_taken = 0
32+
33+
for _, task in tube.raw:tasks_by_state(state.READY) do
34+
if task[2] == state.READY then
35+
count_ready = count_ready + 1
36+
end
37+
end
38+
39+
for _, task in tube.raw:tasks_by_state(state.TAKEN) do
40+
if task[2] == state.TAKEN then
41+
count_taken = count_taken + 1
42+
end
43+
end
44+
45+
test:is(count_ready, 6, 'check tasks count in a ready state')
46+
test:is(count_taken, 4, 'check tasks count in a taken state')
47+
end
48+
49+
return common

0 commit comments

Comments
 (0)