Skip to content

Commit 3adda75

Browse files
committed
Make queue to work with vinyl engine
1 parent 39edec9 commit 3adda75

File tree

14 files changed

+85
-48
lines changed

14 files changed

+85
-48
lines changed

CMakeLists.txt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,12 @@ file(GLOB TEST_LIST ${CMAKE_SOURCE_DIR}/t/*.t)
2020

2121
foreach(TEST ${TEST_LIST})
2222
get_filename_component(TEST_NAME ${TEST} NAME)
23-
add_test(${TEST_NAME} tarantool ${TEST})
24-
set_tests_properties(${TEST_NAME} PROPERTIES ENVIRONMENT "${LUA_PATH}")
23+
add_test (memtx-${TEST_NAME} tarantool ${TEST})
24+
set_tests_properties(memtx-${TEST_NAME} PROPERTIES ENVIRONMENT "${LUA_PATH}")
25+
set_tests_properties(memtx-${TEST_NAME} PROPERTIES ENVIRONMENT "ENGINE=memtx")
26+
add_test (vinyl-${TEST_NAME} tarantool ${TEST})
27+
set_tests_properties(vinyl-${TEST_NAME} PROPERTIES ENVIRONMENT "${LUA_PATH}")
28+
set_tests_properties(vinyl-${TEST_NAME} PROPERTIES ENVIRONMENT "ENGINE=vinyl")
2529
endforeach()
2630

2731
add_custom_target(check

queue/abstract/driver/fifo.lua

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ function tube.create_space(space_name, opts)
1212
local if_not_exists = opts.if_not_exists or false
1313
space_opts.temporary = opts.temporary or false
1414
space_opts.if_not_exists = if_not_exists
15+
space_opts.engine = opts.engine or 'memtx'
1516
space_opts.format = {
1617
[1] = {name = 'task_id', type = num_type()},
1718
[2] = {name = 'status', type = str_type()},
@@ -73,7 +74,8 @@ end
7374

7475
-- delete task
7576
function method.delete(self, id)
76-
local task = self.space:delete(id)
77+
local task = self.space:get(id)
78+
self.space:delete(id)
7779
if task ~= nil then
7880
task = task:transform(2, 1, state.DONE)
7981
end

queue/abstract/driver/fifottl.lua

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ function tube.create_space(space_name, opts)
5353
local if_not_exists = opts.if_not_exists or false
5454
space_opts.temporary = opts.temporary or false
5555
space_opts.if_not_exists = if_not_exists
56+
space_opts.engine = opts.engine or 'memtx'
5657
space_opts.format = {
5758
[1] = {name = 'task_id', type = num_type()},
5859
[2] = {name = 'status', type = str_type()},
@@ -289,7 +290,8 @@ end
289290

290291
-- delete task
291292
function method.delete(self, id)
292-
local task = self.space:delete(id)
293+
local task = self.space:get(id)
294+
self.space:delete(id)
293295
if task ~= nil then
294296
task = task:transform(2, 1, state.DONE)
295297
end

queue/abstract/driver/utube.lua

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ function tube.create_space(space_name, opts)
1313
local if_not_exists = opts.if_not_exists or false
1414
space_opts.temporary = opts.temporary or false
1515
space_opts.if_not_exists = if_not_exists
16+
space_opts.engine = opts.engine or 'memtx'
1617
space_opts.format = {
1718
[1] = {name = 'task_id', type = num_type()},
1819
[2] = {name = 'status', type = str_type()},
@@ -88,7 +89,8 @@ end
8889

8990
-- delete task
9091
function method.delete(self, id)
91-
local task = self.space:delete(id)
92+
local task = self.space:get(id)
93+
self.space:delete(id)
9294
if task ~= nil then
9395
task = task:transform(2, 1, state.DONE)
9496

queue/abstract/driver/utubettl.lua

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ function tube.create_space(space_name, opts)
5555
local if_not_exists = opts.if_not_exists or false
5656
space_opts.temporary = opts.temporary or false
5757
space_opts.if_not_exists = if_not_exists
58+
space_opts.engine = opts.engine or 'memtx'
5859
space_opts.format = {
5960
[1] = {name = 'task_id', type = num_type()},
6061
[2] = {name = 'status', type = str_type()},
@@ -302,7 +303,8 @@ end
302303

303304
-- delete task
304305
function method.delete(self, id)
305-
local task = self.space:delete(id)
306+
local task = self.space:get(id)
307+
self.space:delete(id)
306308
if task ~= nil then
307309
task = task:transform(i_status, 1, state.DONE)
308310
return process_neighbour(self, task, 'delete')

t/000-init.t

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ test:plan(2)
77

88
local queue = require('queue')
99

10+
local engine = os.getenv('ENGINE') or 'memtx'
11+
1012
test:test('access to queue until box.cfg is started', function(test)
1113
test:plan(3)
1214
test:isnil(rawget(box, 'space'), 'box is not started yet')
@@ -26,7 +28,7 @@ test:test('access to queue after box.cfg{}', function(test)
2628
test:istable(queue.tube, 'queue.tube is table')
2729
test:is(#queue.tube, 0, 'queue.tube is empty')
2830

29-
local tube = queue.create_tube('test', 'fifo')
31+
local tube = queue.create_tube('test', 'fifo', { engine = engine })
3032
test:ok(queue.tube.test, 'tube "test" is created')
3133

3234
test:ok(queue.tube.test:put(123), 'put')

t/010-fifo.t

Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,16 @@ test:plan(14)
88
local queue = require('queue')
99
local state = require('queue.abstract.state')
1010

11+
local engine = os.getenv('ENGINE') or 'memtx'
12+
1113
local tnt = require('t.tnt')
1214
tnt.cfg{}
1315

1416
test:ok(rawget(box, 'space'), 'box started')
1517
test:ok(queue, 'queue is loaded')
1618

17-
local tube = queue.create_tube('test', 'fifo')
18-
local tube2 = queue.create_tube('test_stat', 'fifo')
19+
local tube = queue.create_tube('test', 'fifo', { engine = engine })
20+
local tube2 = queue.create_tube('test_stat', 'fifo', { engine = engine })
1921
test:ok(tube, 'test tube created')
2022
test:is(tube.name, 'test', 'tube.name')
2123
test:is(tube.type, 'fifo', 'tube.type')
@@ -217,17 +219,21 @@ end)
217219

218220
test:test('creating existing tube', function(test)
219221
test:plan(2)
220-
local s, e = pcall(function() queue.create_tube('test', 'fifo') end)
222+
local s, e = pcall(function() queue.create_tube('test', 'fifo', { engine = engine }) end)
221223
test:ok(not s, 'exception was thrown')
222224
test:ok(e:match("Space 'test' already exists") ~= nil, 'text of exception')
223225
end)
224226

225227
test:test('tempspace', function(test)
226-
test:plan(2)
227-
tube = queue.create_tube('test1', 'fifo', { temporary = true })
228-
test:ok(tube, 'tube was created')
229-
local space_r = box.space._space:get{queue.tube.test1.raw.space.id}
230-
test:ok(space_r[6].temporary, 'really tempspace')
228+
if engine ~= 'vinyl' then
229+
test:plan(2)
230+
tube = queue.create_tube('test1', 'fifo', { temporary = true })
231+
test:ok(tube, 'tube was created')
232+
local space_r = box.space._space:get{queue.tube.test1.raw.space.id}
233+
test:ok(space_r[6].temporary, 'really tempspace')
234+
else
235+
test:plan(0)
236+
end
231237
end)
232238

233239
test:test('disconnect test', function(test)
@@ -244,7 +250,6 @@ test:test('disconnect test', function(test)
244250
local task3 = tube:take(.1)
245251
test:ok(task3, 'task3 was taken')
246252

247-
248253
queue._on_consumer_disconnect()
249254

250255
test:is(tube:peek(task1[1])[2], state.READY, 'task1 was marked as READY')
@@ -253,9 +258,13 @@ test:test('disconnect test', function(test)
253258
end)
254259

255260
test:test('if not exists tests', function(test)
256-
test:plan(1)
257-
local tube_dup = queue.create_tube('test1', 'fifo', { if_not_exists = true })
258-
test:is(tube_dup, tube, '')
261+
if engine ~= 'vinyl' then
262+
test:plan(1)
263+
local tube_dup = queue.create_tube('test1', 'fifo', { if_not_exists = true })
264+
test:is(tube_dup, tube, '')
265+
else
266+
test:plan(0)
267+
end
259268
end)
260269

261270
test:test('truncate test', function(test)
@@ -269,16 +278,16 @@ end)
269278
test:test('if_not_exists test', function(test)
270279
test:plan(2)
271280
local tube = queue.create_tube('test_ine', 'fifo', {
272-
if_not_exists = true
281+
if_not_exists = true, engine = engine
273282
})
274283
local tube_new = queue.create_tube('test_ine', 'fifo', {
275-
if_not_exists = true
284+
if_not_exists = true, engine = engine
276285
})
277286
test:is(tube, tube_new, "if_not_exists if tube exists")
278287

279288
queue.tube['test_ine'] = nil
280289
local tube_new = queue.create_tube('test_ine', 'fifo', {
281-
if_not_exists = true
290+
if_not_exists = true, engine = engine
282291
})
283292
test:isnt(tube, tube_new, "if_not_exists if tube doesn't exists")
284293
end)

t/020-fifottl.t

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,13 @@ local qc = require('queue.compat')
1212
local tnt = require('t.tnt')
1313
tnt.cfg{}
1414

15+
local engine = os.getenv('ENGINE') or 'vinyl'
16+
1517
test:ok(rawget(box, 'space'), 'box started')
1618
test:ok(queue, 'queue is loaded')
1719

18-
local tube = queue.create_tube('test', 'fifottl')
19-
local tube2 = queue.create_tube('test_stat', 'fifottl')
20+
local tube = queue.create_tube('test', 'fifottl', { engine = engine })
21+
local tube2 = queue.create_tube('test_stat', 'fifottl', { engine = engine })
2022
test:ok(tube, 'test tube created')
2123
test:is(tube.name, 'test', 'tube.name')
2224
test:is(tube.type, 'fifottl', 'tube.type')
@@ -180,16 +182,16 @@ end)
180182
test:test('if_not_exists test', function(test)
181183
test:plan(2)
182184
local tube = queue.create_tube('test_ine', 'fifottl', {
183-
if_not_exists = true
185+
if_not_exists = true, engine = engine
184186
})
185187
local tube_new = queue.create_tube('test_ine', 'fifottl', {
186-
if_not_exists = true
188+
if_not_exists = true, engine = engine
187189
})
188190
test:is(tube, tube_new, "if_not_exists if tube exists")
189191

190192
queue.tube['test_ine'] = nil
191193
local tube_new = queue.create_tube('test_ine', 'fifottl', {
192-
if_not_exists = true
194+
if_not_exists = true, engine = engine
193195
})
194196
test:isnt(tube, tube_new, "if_not_exists if tube doesn't exists")
195197
end)

t/030-utube.t

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,13 @@ local state = require('queue.abstract.state')
1111
local tnt = require('t.tnt')
1212
tnt.cfg{}
1313

14+
local engine = os.getenv('ENGINE') or 'memtx'
15+
1416
test:ok(rawget(box, 'space'), 'box started')
1517
test:ok(queue, 'queue is loaded')
1618

17-
local tube = queue.create_tube('test', 'utube')
18-
local tube2 = queue.create_tube('test_stat', 'utube')
19+
local tube = queue.create_tube('test', 'utube', { engine = engine })
20+
local tube2 = queue.create_tube('test_stat', 'utube', { engine = engine })
1921
test:ok(tube, 'test tube created')
2022
test:is(tube.name, 'test', 'tube.name')
2123
test:is(tube.type, 'utube', 'tube.type')
@@ -140,16 +142,16 @@ end)
140142
test:test('if_not_exists test', function(test)
141143
test:plan(2)
142144
local tube = queue.create_tube('test_ine', 'utube', {
143-
if_not_exists = true
145+
if_not_exists = true, engine = engine
144146
})
145147
local tube_new = queue.create_tube('test_ine', 'utube', {
146-
if_not_exists = true
148+
if_not_exists = true, engine = engine
147149
})
148150
test:is(tube, tube_new, "if_not_exists if tube exists")
149151

150152
queue.tube['test_ine'] = nil
151153
local tube_new = queue.create_tube('test_ine', 'utube', {
152-
if_not_exists = true
154+
if_not_exists = true, engine = engine
153155
})
154156
test:isnt(tube, tube_new, "if_not_exists if tube doesn't exists")
155157
end)

t/040-utubettl.t

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,13 @@ local qc = require('queue.compat')
1313
local tnt = require('t.tnt')
1414
tnt.cfg{}
1515

16+
local engine = os.getenv('ENGINE') or 'memtx'
17+
1618
test:ok(rawget(box, 'space'), 'box started')
1719
test:ok(queue, 'queue is loaded')
1820

19-
local tube = queue.create_tube('test', 'utubettl')
20-
local tube2 = queue.create_tube('test_stat', 'utubettl')
21+
local tube = queue.create_tube('test', 'utubettl', { engine = engine })
22+
local tube2 = queue.create_tube('test_stat', 'utubettl', { engine = engine })
2123
test:ok(tube, 'test tube created')
2224
test:is(tube.name, 'test', 'tube.name')
2325
test:is(tube.type, 'utubettl', 'tube.type')
@@ -85,7 +87,7 @@ end)
8587

8688
test:test('ttr put/take', function(test)
8789
test:plan(3)
88-
local my_queue = queue.create_tube('trr_test', 'utubettl')
90+
local my_queue = queue.create_tube('trr_test', 'utubettl', { engine = engine })
8991
test:ok(my_queue:put('ttr1', { ttr = 1 }), 'put ttr task')
9092
test:ok(my_queue:take(0.1) ~= nil, 'take this task')
9193
fiber.sleep(1)
@@ -204,16 +206,16 @@ end)
204206
test:test('if_not_exists test', function(test)
205207
test:plan(2)
206208
local tube = queue.create_tube('test_ine', 'utubettl', {
207-
if_not_exists = true
209+
if_not_exists = true, engine = engine
208210
})
209211
local tube_new = queue.create_tube('test_ine', 'utubettl', {
210-
if_not_exists = true
212+
if_not_exists = true, engine = engine
211213
})
212214
test:is(tube, tube_new, "if_not_exists if tube exists")
213215

214216
queue.tube['test_ine'] = nil
215217
local tube_new = queue.create_tube('test_ine', 'utubettl', {
216-
if_not_exists = true
218+
if_not_exists = true, engine = engine
217219
})
218220
test:isnt(tube, tube_new, "if_not_exists if tube doesn't exists")
219221
end)

0 commit comments

Comments
 (0)