aboutsummaryrefslogtreecommitdiff
path: root/testes
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2024-01-25 13:52:52 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2024-01-25 13:52:52 -0300
commit108e0bdc8495782544c351b17eaae1411a910e89 (patch)
tree1196b9d9288b38b0be0290e30ec818fa09d06238 /testes
parentb34a97a4af5c9e973915c07dba918d95009e0acd (diff)
parente288c5a91883793d14ed9e9d93464f6ee0b08915 (diff)
downloadlua-108e0bdc8495782544c351b17eaae1411a910e89.tar.gz
lua-108e0bdc8495782544c351b17eaae1411a910e89.tar.bz2
lua-108e0bdc8495782544c351b17eaae1411a910e89.zip
Merge branch 'master' into nextversion
Diffstat (limited to 'testes')
-rw-r--r--testes/coroutine.lua8
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))