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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
local helpers = require("test.unit.helpers")
local ffi = helpers.ffi
local eq = helpers.eq
local to_cstr = helpers.to_cstr
local cimp = helpers.cimport('./src/nvim/message.h')
describe('trunc_string', function()
local buffer = ffi.typeof('char_u[40]')
local function test_inplace(s, expected)
local buf = buffer()
ffi.C.strcpy(buf, s)
cimp.trunc_string(buf, buf, 20, 40)
eq(expected, ffi.string(buf))
end
local function test_copy(s, expected)
local buf = buffer()
cimp.trunc_string(to_cstr(s), buf, 20, 40)
eq(expected, ffi.string(buf))
end
local permutations = {
{ ['desc'] = 'in-place', ['func'] = test_inplace },
{ ['desc'] = 'by copy', ['func'] = test_copy },
}
for _,t in ipairs(permutations) do
describe('populates buf '..t.desc, function()
it('with a small string', function()
t.func('text', 'text')
end)
it('with a medium string', function()
t.func('a short text', 'a short text')
end)
it('with a string exactly the truncate size', function()
t.func('a text tha just fits', 'a text tha just fits')
end)
it('with a string that must be truncated', function()
t.func('a text that nott fits', 'a text t...nott fits')
end)
end)
end
end)
|