aboutsummaryrefslogtreecommitdiff
path: root/testes/strings.lua
diff options
context:
space:
mode:
Diffstat (limited to 'testes/strings.lua')
-rw-r--r--testes/strings.lua17
1 files changed, 17 insertions, 0 deletions
diff --git a/testes/strings.lua b/testes/strings.lua
index 46912d43..84ff1154 100644
--- a/testes/strings.lua
+++ b/testes/strings.lua
@@ -540,6 +540,23 @@ else
540 assert(y == x) 540 assert(y == x)
541 local z = T.externstr(x) -- external allocated long string 541 local z = T.externstr(x) -- external allocated long string
542 assert(z == y) 542 assert(z == y)
543
544 local e = T.externstr("") -- empty external string
545 assert(e .. "x" == "x" and "x" .. e == "x")
546 assert(e .. e == "" and #e == 0)
547
548 -- external string as the "n" key in vararg table
549 local n = T.externstr("n")
550 local n0 = T.externstr("n\0")
551 local function aux (...t) assert(t[n0] == nil); return t[n] end
552 assert(aux(10, 20, 30) == 3)
553
554 -- external string as mode in weak table
555 local t = setmetatable({}, {__mode = T.externstr("kv")})
556 t[{}] = {}
557 assert(next(t))
558 collectgarbage()
559 assert(next(t) == nil)
543end 560end
544 561
545print('OK') 562print('OK')