diff options
Diffstat (limited to 'testes/strings.lua')
| -rw-r--r-- | testes/strings.lua | 17 |
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) | ||
| 543 | end | 560 | end |
| 544 | 561 | ||
| 545 | print('OK') | 562 | print('OK') |
