forked from osmocom/wireshark
56 lines
1.6 KiB
Lua
56 lines
1.6 KiB
Lua
--
|
|
-- Unicode tests
|
|
--
|
|
|
|
local errors = 0
|
|
|
|
function assertEqual(what, a, b)
|
|
if a == b then
|
|
return true
|
|
end
|
|
print('ERROR:', what)
|
|
print('Expected:', tostring(a))
|
|
print(' Actual:', tostring(b))
|
|
errors = errors + 1
|
|
end
|
|
|
|
-- script name check
|
|
local scriptname = (debug.getinfo(1, 'S').source or ''):gsub("^@.*[/\\]", "")
|
|
assertEqual('script name', 'script-Ф-€-中.lua', scriptname)
|
|
|
|
-- loadfile
|
|
local code, err = loadfile('load-Ф-€-中.lua')
|
|
assertEqual('loadfile', nil, err)
|
|
assertEqual('loadfile contents', 'Contents of Ф-€-中', code and code())
|
|
|
|
-- dofile
|
|
local ok, result = pcall(dofile, 'load-Ф-€-中.lua')
|
|
assertEqual('dofile pcall', true, ok)
|
|
assertEqual('dofile contents', 'Contents of Ф-€-中', result)
|
|
|
|
-- io.open (read)
|
|
local fr, err = io.open('load-Ф-€-中.lua')
|
|
assertEqual('io.open (read)', nil, err)
|
|
assertEqual('io.read', 'return "Contents of Ф-€-中"\n', fr and fr:read('*a'))
|
|
if fr then fr:close() end
|
|
|
|
-- io.open (write)
|
|
local fw, err = io.open('written-by-lua-Ф-€-中.txt', 'w')
|
|
assertEqual('io.open (write)', nil, err)
|
|
if fw then
|
|
local _, err = fw:write('Feedback from Lua: Ф-€-中\n')
|
|
assertEqual('io.write', nil, err)
|
|
end
|
|
if fw then fw:close() end
|
|
|
|
-- Check for Unicode in personal plugins directory path.
|
|
local pdir_expected = 'unicode-Ф-€-中-testcases'
|
|
local pdir = Dir.personal_plugins_path()
|
|
pdir = pdir:gsub('.*[/\\]unicode-.*-.*-testcases[/\\].*', pdir_expected)
|
|
assertEqual('Unicode in Dir.personal_plugins_path', pdir_expected, pdir)
|
|
|
|
if errors ~= 0 then
|
|
error('Failed tests: ' .. errors)
|
|
end
|
|
print("All tests passed!")
|