diff --git a/test/box/admin.test.lua b/test/box/admin.test.lua new file mode 100644 index 0000000000000000000000000000000000000000..1756fecbb5a91b30ea30d9fe4307574388fd021b --- /dev/null +++ b/test/box/admin.test.lua @@ -0,0 +1,130 @@ +--# stop server default +--# start server default + +space = box.schema.create_space('tweedledum', { id = 0 }) +space:create_index('primary', 'hash', { parts = { 0, 'num' }}) + +box.stat() +help() +box.cfg() +box.stat() +box.insert(0, 1, 'tuple') +box.snapshot() +box.delete(0, 1) +--# setopt delimiter ';' + +function check_type(arg, typeof) + if arg == nil then + return false + elseif type(arg) == typeof then + return true + else + return false + end +end; +function test_box_info() + local tmp = box.info() + local num = {'pid', 'lsn', 'snapshot_pid', 'recovery_last_update', 'recovery_lag', 'uptime', 'logger_pid'} + local buildstr = {'flags', 'target', 'compiler', 'options'} + local str = {'version', 'status', 'config'} + failed = {} + for k, v in ipairs(num) do + if check_type(tmp[v], 'number') == false then + table.insert(failed, 'box.info().'..v) + end + end + for k, v in ipairs(str) do + if check_type(tmp[v], 'string') == false then + table.insert(failed, 'box.info().'..v) + end + end + for k, v in ipairs(buildstr) do + if check_type(tmp.build[v], 'string') == false then + table.insert(failed, 'box.info().build.'..v) + end + end + if #failed == 0 then + return 'box.info() is ok.' + else + return 'box.info() is not ok.', 'failed: ', failed +end; + +function test_slab(tbl) + if type(tbl.items) == 'number' then + tbl.items = nil + end + if type(tbl.bytes_used) == 'number' then + tbl.bytes_used = nil + end + if type(tbl.item_size) == 'number' then + tbl.item_size = nil + end + if type(tbl.slabs) == 'number' then + tbl.slabs = nil + end + if type(tbl.bytes_free) == 'number' then + tbl.bytes_free = nil + end + if #tbl > 0 then + return false + else + return true + end +end; + +function test_box_slab_info() + local tmp = box.slab.info() + + for name, tbl in ipairs(tmp.slabs) do + if test_slab(tbl) == true then + tmp[name] = nil + end + if #tmp.slabs == 0 then + tmp.slabs = nil + end + if type(tmp.arena_size) == 'number' then + tmp.arena_size = nil + end + if type(tmp.arena_used) == 'number' then + tmp.arena_used = nil + end + if #tmp > 0 then + return tmp + else + return "box.slab.info() is ok" +end; + +function test_fiber(tbl) + if type(tbl.fid) == 'number' then + tbl.fid = nil + end + if type(tbl.csw) == 'number' then + tbl.csw = nil + end + if type(tbl.backtrace) == 'table' and #tbl.backtrace > 0 then + tbl.backtrace = nil + end + if #tbl > 0 then + return false + else + return true + end +end; + +function test_box_fiber_info() + local tmp = box.fiber.info() + for name, tbl in ipairs(tmp) do + if test_fiber(tbl) == true then + tmp[name] = nil + end + end + if #tmp > 0 then + return tmp + else + return "box.fiber.info() is ok" + end +end; + +test_box_info(); +test_box_slab_info(); +test_box_fiber_info();