mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-08-01 11:18:09 -07:00
the testsuite from upstream cannot be used as it is select a few tests for basic operations use pushd/popd Signed-off-by: Nicolas PARLANT <nicolas.parlant@parhuet.fr> Part-of: https://codeberg.org/gentoo/gentoo/pulls/1468 Merges: https://codeberg.org/gentoo/gentoo/pulls/1468 Signed-off-by: Sam James <sam@gentoo.org>
73 lines
2.0 KiB
Lua
73 lines
2.0 KiB
Lua
-- the use of tests/test.lua is done by comparing the output between 5.1 and 5.3
|
|
-- it's not adapted for our case, select a few for basic operations
|
|
|
|
package.path = "./?.lua;./?/init.lua"
|
|
package.cpath = "./?.so"
|
|
|
|
require("compat53")
|
|
|
|
local failures = 0
|
|
local function test(name, f)
|
|
print("testing " .. name .. "...")
|
|
local ok, err = pcall(require, "compat53." .. name)
|
|
if not ok then
|
|
failures = failures + 1
|
|
print("FAIL: " .. err)
|
|
return
|
|
end
|
|
|
|
ok, err = pcall(f)
|
|
if ok then
|
|
print(name .. "... OK")
|
|
else
|
|
failures = failures + 1
|
|
print("FAIL: " .. err)
|
|
end
|
|
end
|
|
|
|
test("utf8", function()
|
|
local unpack = table.unpack or unpack
|
|
local function utf8rt(s)
|
|
local t = { utf8.codepoint(s, 1, #s) }
|
|
local ps, cs = {}, {}
|
|
for p,c in utf8.codes(s) do
|
|
ps[#ps+1], cs[#cs+1] = p, c
|
|
end
|
|
print("utf8.codes", unpack(ps))
|
|
print("utf8.codes", unpack(cs))
|
|
print("utf8.codepoint", unpack(t))
|
|
print("utf8.len", utf8.len(s), #t, #s)
|
|
print("utf8.char", utf8.char(unpack(t)))
|
|
end
|
|
utf8rt("äöüßÄÖÜ")
|
|
utf8rt("abcdefg")
|
|
local s = "äöüßÄÖÜ"
|
|
print("utf8.offset", utf8.offset(s, 1, 1))
|
|
print("utf8.offset", utf8.offset(s, 2, 1))
|
|
print("utf8.offset", utf8.offset(s, 3, 1))
|
|
print("utf8.offset", pcall(utf8.offset, s, 3, 2))
|
|
print("utf8.offset", utf8.offset(s, 3, 3))
|
|
print("utf8.offset", utf8.offset(s, -1, 7))
|
|
print("utf8.offset", utf8.offset(s, -2, 7))
|
|
print("utf8.offset", utf8.offset(s, -3, 7))
|
|
print("utf8.offset", utf8.offset(s, -1))
|
|
end)
|
|
|
|
test("string", function()
|
|
local format = "bBhHlLjJdc3z"
|
|
local s = string.pack(format, -128, 255, -32768, 65535, -2147483648, 4294967295, -32768, 65536, 1.25, "abc", "defgh")
|
|
print("string.unpack", string.unpack(format, s))
|
|
end)
|
|
|
|
test("table", function()
|
|
local t = table.pack("a", nil, "b", nil)
|
|
print("table.(un)pack()", t.n, table.unpack(t, 1, t.n))
|
|
end)
|
|
|
|
if failures == 0 then
|
|
print("tests PASSED")
|
|
else
|
|
print("tests FAILED (" .. failures .. " failures)")
|
|
os.exit(1)
|
|
end
|