* merge fixes * add Lua version logging to test * move StoredObject to shared_ptr * rewrite metamethods impl * fix for SEGFAULT, I hope
72 lines
2.0 KiB
Lua
72 lines
2.0 KiB
Lua
function log(...)
|
|
local msg = '@\t\t' .. os.date('%Y-%m-%d %H:%M:%S ',os.time())
|
|
for _, val in ipairs({...}) do
|
|
msg = msg .. tostring(val) .. ' '
|
|
end
|
|
io.write(msg .. '\n')
|
|
io.flush()
|
|
end
|
|
|
|
function wait(timeInSec, condition, silent)
|
|
if not silent then
|
|
log("Start waiting for " .. tostring(timeInSec) .. "sec...")
|
|
end
|
|
local result = false
|
|
local startTime = os.time()
|
|
while ( (os.time() - startTime) <= timeInSec) do
|
|
if condition ~= nil then
|
|
if type(condition) == 'function' then
|
|
if condition() then
|
|
result = true
|
|
break
|
|
end
|
|
else
|
|
if condition then
|
|
result = true
|
|
break
|
|
end
|
|
end
|
|
end
|
|
end
|
|
if not silent then
|
|
log "Give up"
|
|
end
|
|
return result
|
|
end
|
|
|
|
function sleep(timeInSec, silent)
|
|
if not silent then
|
|
log("Start sleep for " .. tostring(timeInSec) .. "sec...")
|
|
end
|
|
wait(timeInSec, nil, true)
|
|
if not silent then
|
|
log "Wake up"
|
|
end
|
|
end
|
|
|
|
function tearDown()
|
|
collectgarbage()
|
|
end
|
|
|
|
function make_test_with_param(test_suite, test_case_pattern, ...)
|
|
local tests_to_delete, tests_to_add = {}, {}
|
|
for test_name, test_func in pairs(test_suite) do
|
|
if string.sub(test_name, 1, 4):lower() == 'test' and string.match(test_name, test_case_pattern) then
|
|
table.insert(tests_to_delete, test_name)
|
|
for i, param in ipairs({...}) do
|
|
tests_to_add[test_name .. "/" .. i] = function(t)
|
|
print("# with params: " .. tostring(param))
|
|
t.test_param = param
|
|
return test_func(t)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
for _, test_name in ipairs(tests_to_delete) do
|
|
test_suite[test_name] = nil
|
|
end
|
|
for test_name, test_func in pairs(tests_to_add) do
|
|
test_suite[test_name] = test_func
|
|
end
|
|
end
|