File tree Expand file tree Collapse file tree 3 files changed +55
-15
lines changed
Expand file tree Collapse file tree 3 files changed +55
-15
lines changed Original file line number Diff line number Diff line change @@ -669,12 +669,4 @@ setmetatable(queue.stat, {
669669 }
670670)
671671
672- queue .register_driver = function (driver_name , tube_ctr )
673- if type (tube_ctr .create_space ) ~= ' function' or
674- type (tube_ctr .new ) ~= ' function' then
675- error (' tube control methods must contain functions "create_space" and "new"' )
676- end
677- queue .driver [driver_name ] = tube_ctr
678- end
679-
680672return setmetatable (queue , { __index = method })
Original file line number Diff line number Diff line change 11local queue = nil
2+
3+ local function register_driver (driver_name , tube_ctr )
4+ if type (tube_ctr .create_space ) ~= ' function' or
5+ type (tube_ctr .new ) ~= ' function' then
6+ error (' tube control methods must contain functions "create_space"'
7+ .. ' and "new"' )
8+ end
9+ queue .driver [driver_name ] = tube_ctr
10+ end
11+
212queue = setmetatable ({
313 driver = {},
4- register_driver = function (driver_name , tube_ctr )
5- if type (tube_ctr .create_space ) ~= ' function' or
6- type (tube_ctr .new ) ~= ' function' then
7- error (' tube control methods must contain functions "create_space" and "new"' )
8- end
9- queue .driver [driver_name ] = tube_ctr
10- end ,
14+ register_driver = register_driver ,
1115}, { __index = function () print (debug.traceback ()) error (" Please run box.cfg{} first" ) end })
1216
1317if rawget (box , ' space' ) == nil then
@@ -34,6 +38,7 @@ if rawget(box, 'space') == nil then
3438 end
3539else
3640 queue = require ' queue.abstract'
41+ queue .register_driver = register_driver
3742 queue .start ()
3843end
3944
Original file line number Diff line number Diff line change 1+ # !/ usr/ bin/ env tarantool
2+ local tap = require (' tap' )
3+ local tnt = require (' t.tnt' )
4+
5+ local test = tap.test(' test driver register' )
6+ test:plan(2 )
7+
8+ local mock_tube = {
9+ create_space = function () end ,
10+ new = function () end
11+ }
12+
13+ -- As opposed to 001-tube-init.t, queue initialization
14+ -- and driver registration are done after cfg().
15+ local function check_driver_register ()
16+ tnt.cfg()
17+ local queue = require (' queue' )
18+ queue.register_driver(' mock' , mock_tube)
19+ test:is(queue.driver.mock, mock_tube, ' driver has been registered' )
20+
21+ local standart_drivers = {
22+ ' fifo' ,
23+ ' fifottl' ,
24+ ' limfifottl' ,
25+ ' utube' ,
26+ ' utubettl'
27+ }
28+ local check_standart_drivers = true
29+
30+ for _, v in pairs (standart_drivers) do
31+ if queue.driver[v] == nil then
32+ check_standart_drivers = false
33+ break
34+ end
35+ end
36+
37+ test:ok(check_standart_drivers, ' standard drivers are defined' )
38+ end
39+
40+ check_driver_register()
41+
42+ tnt.finish()
43+ os.exit (test:check() and 0 or 1 )
You can’t perform that action at this time.
0 commit comments