1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
local util = require 'lua_util'
context("Lua util - callback_from_string", function()
local cases = {
{'return function', 'return function(a, b) return a + b end'},
{'function', 'function(a, b) return a + b end'},
{'plain ops', 'local c = select(1, ...)\nreturn c + select(2, ...)'},
}
local fail_cases = {
nil,
'',
'return function(a, b) ( end',
'function(a, b) ( end',
'return a + b'
}
for _,c in ipairs(cases) do
test('Success case: ' .. c[1], function()
local ret,f = util.callback_from_string(c[2])
assert_true(ret, f)
assert_equal(f(2, 2), 4)
end)
end
for i,c in ipairs(fail_cases) do
test('Failure case: ' .. tostring(i), function()
local ret,f = util.callback_from_string(c)
assert_false(ret)
end)
end
end)
|