From 1c5e2352f99b25e1866a2e1d4ac2d97d33659ea1 Mon Sep 17 00:00:00 2001 From: James Roseborough Date: Wed, 26 Aug 2009 14:26:55 +0000 Subject: [PATCH] Add coroutine and vararg tests. --- src/test/res/coroutines.lua | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/test/res/coroutines.lua b/src/test/res/coroutines.lua index 304d71c4..7b92dfca 100644 --- a/src/test/res/coroutines.lua +++ b/src/test/res/coroutines.lua @@ -74,3 +74,24 @@ print("g", g("x", "y")) local s,e = pcall( g, "x", "y" ) print("g", string.match(e,'cannot resume dead coroutine') or 'badmessage: '..tostring(e)) +-- varargs passing +local echo = function(msg,...) + print( msg, ...) + return ... +end +local echocr = function(...) + echo('(echocr) first args', unpack(arg,1,arg.n)) + local a = arg + while true do + a = { echo( '(echoch) yield returns', coroutine.yield( unpack(a) ) ) } + end +end +local c = coroutine.create( echocr ) +local step = function(...) + echo( '(main) resume returns', + coroutine.resume(c, echo('(main) sending args', ...)) ) +end +step(111,222,333) +step() +step(111) +step(111,222,333)