commit - bf0b7cab4940b49c558d457f34254b85c9b40657
commit + d630b4c9eeba67df7eb715875ae96e64e70440f5
blob - 96a8aa2e3116cb1043c8a52da788c9d5445d2402 (mode 644)
blob + /dev/null
--- tarantool-tools/tt_helpers.lua
+++ /dev/null
-local function dict_keys(t)
- assert(next(t) ~= nil)
- local keys = {}
- for k, _ in pairs(t) do
- table.insert(keys, k)
- end
- return keys
-end
-
-local function random_elem(t)
- assert(type(t) == 'table')
- assert(next(t) ~= nil)
-
- local n = #t
- local idx = math.random(1, n)
- return t[idx]
-end
-
-local charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
-
-local function random_string(length)
- local length = length or 1
- assert(length > 0)
- return random_string(length - 1) .. charset:sub(math.random(1, #charset), 1)
-end
-
-return {
- dict_keys = dict_keys,
- random_elem = random_elem,
- random_string = random_string,
-}
blob - 4144296eedbc705e6854ff1eab63efeb50e06b14
blob + 790e1723ad6ca15369740195053e54752792240d
--- tarantool-tools/vinyl.lua
+++ tarantool-tools/vinyl.lua
local fiber = require('fiber')
local log = require('log')
local math = require('math')
-local tt_helpers = require('tt_helpers')
local seed = SEED or os.time()
seed = seed or math.randomseed(seed)
-- https://www.lua.org/pil/23.2.html
-- debug.sethook(trace, "l")
+
+local function dict_keys(t)
+ assert(next(t) ~= nil)
+ local keys = {}
+ for k, _ in pairs(t) do
+ table.insert(keys, k)
+ end
+ return keys
+end
+
+local function random_elem(t)
+ assert(type(t) == 'table')
+ assert(next(t) ~= nil)
+
+ local n = #t
+ local idx = math.random(1, n)
+ return t[idx]
+end
local errinj_set = {
['ERRINJ_VY_GC'] = 'boolean',
local function generate_dml(space)
log.info("GENERATE DML")
- local op_name = tt_helpers.random_elem(tt_helpers.dict_keys(dml_ops))
+ local op_name = random_elem(dict_keys(dml_ops))
log.info(op_name)
local fn = dml_ops[op_name]
assert(type(fn) == 'function')
local function generate_ddl(space)
log.info("GENERATE DDL")
- local op_name = tt_helpers.random_elem(tt_helpers.dict_keys(ddl_ops))
+ local op_name = random_elem(dict_keys(ddl_ops))
log.info(op_name)
local fn = ddl_ops[op_name]
assert(type(fn) == 'function')
local function set_err_injection()
log.info("SET RANDOM ERROR INJECTIONS")
- local errinj_name = tt_helpers.random_elem(tt_helpers.dict_keys(errinj_set))
+ local errinj_name = random_elem(dict_keys(errinj_set))
local t = errinj_set[errinj_name]
local errinj_val_enable = true
local pause_time = math.random(1, 20)
log.info(string.format("SET %s -> %s", errinj_name, tostring(errinj_val_enable)))
- pcall(box.error.injection.set, errinj_name, errinj_val_enable)
+ local ok, err
+ ok, err = pcall(box.error.injection.set, errinj_name, errinj_val_enable)
+ if ok ~= true then
+ log.info(err)
+ end
fiber.sleep(pause_time)
log.info(string.format("SET %s -> %s", errinj_name, tostring(errinj_val_disable)))
- pcall(box.error.injection.set, errinj_name, errinj_val_disable)
+ ok, err = pcall(box.error.injection.set, errinj_name, errinj_val_disable)
+ if ok ~= true then
+ log.info(err)
+ end
end
-- https://www.tarantool.io/en/doc/latest/reference/reference_lua/box_stat/vinyl/