aboutsummaryrefslogtreecommitdiffstats
path: root/test/lua
diff options
context:
space:
mode:
authorPeter Wu <peter@lekensteyn.nl>2018-12-20 23:25:23 +0100
committerAnders Broman <a.broman58@gmail.com>2018-12-29 08:27:58 +0000
commitf201b971d80e4020078dcec9a1c85d4d0a2cd02b (patch)
treeeef64b49a78bba54ad53281555eaaf9d1f6961fb /test/lua
parent604aef7164f50d1f547c7c3d2b0b811be6129e4a (diff)
test: add tests for Unicode paths in Lua and tshark -G folders
Check for potential Unicode-related problems on Windows. Change-Id: I147c07749c5073a9ae00f07914dd80347d17c40f Ping-Bug: 15118 Reviewed-on: https://code.wireshark.org/review/31154 Tested-by: Petri Dish Buildbot Petri-Dish: Peter Wu <peter@lekensteyn.nl> Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'test/lua')
-rw-r--r--test/lua/unicode.lua55
1 files changed, 55 insertions, 0 deletions
diff --git a/test/lua/unicode.lua b/test/lua/unicode.lua
new file mode 100644
index 0000000000..3510e574a6
--- /dev/null
+++ b/test/lua/unicode.lua
@@ -0,0 +1,55 @@
+--
+-- 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!")