diff options
Diffstat (limited to 'testes')
-rw-r--r-- | testes/coroutine.lua | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/testes/coroutine.lua b/testes/coroutine.lua index 6c15db03..664ef5fa 100644 --- a/testes/coroutine.lua +++ b/testes/coroutine.lua | |||
@@ -610,18 +610,20 @@ else | |||
610 | -- (bug in 5.2/5.3) | 610 | -- (bug in 5.2/5.3) |
611 | c = coroutine.create(function (a, ...) | 611 | c = coroutine.create(function (a, ...) |
612 | T.sethook("yield 0", "l") -- will yield on next two lines | 612 | T.sethook("yield 0", "l") -- will yield on next two lines |
613 | assert(a == 10) | 613 | local b = a |
614 | return ... | 614 | return ... |
615 | end) | 615 | end) |
616 | 616 | ||
617 | assert(coroutine.resume(c, 1, 2, 3)) -- start coroutine | 617 | assert(coroutine.resume(c, 1, 2, 3)) -- start coroutine |
618 | local n,v = debug.getlocal(c, 0, 1) -- check its local | 618 | local n,v = debug.getlocal(c, 0, 1) -- check its local |
619 | assert(n == "a" and v == 1) | 619 | assert(n == "a" and v == 1 and debug.getlocal(c, 0, 2) ~= "b") |
620 | assert(debug.setlocal(c, 0, 1, 10)) -- test 'setlocal' | 620 | assert(debug.setlocal(c, 0, 1, 10)) -- test 'setlocal' |
621 | local t = debug.getinfo(c, 0) -- test 'getinfo' | 621 | local t = debug.getinfo(c, 0) -- test 'getinfo' |
622 | assert(t.currentline == t.linedefined + 1) | 622 | assert(t.currentline == t.linedefined + 2) |
623 | assert(not debug.getinfo(c, 1)) -- no other level | 623 | assert(not debug.getinfo(c, 1)) -- no other level |
624 | assert(coroutine.resume(c)) -- run next line | 624 | assert(coroutine.resume(c)) -- run next line |
625 | local n,v = debug.getlocal(c, 0, 2) -- check next local | ||
626 | assert(n == "b" and v == 10) | ||
625 | v = {coroutine.resume(c)} -- finish coroutine | 627 | v = {coroutine.resume(c)} -- finish coroutine |
626 | assert(v[1] == true and v[2] == 2 and v[3] == 3 and v[4] == undef) | 628 | assert(v[1] == true and v[2] == 2 and v[3] == 3 and v[4] == undef) |
627 | assert(not coroutine.resume(c)) | 629 | assert(not coroutine.resume(c)) |