summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-fiber/test
diff options
context:
space:
mode:
Diffstat (limited to 'mrbgems/mruby-fiber/test')
-rw-r--r--mrbgems/mruby-fiber/test/fiber.rb19
1 files changed, 19 insertions, 0 deletions
diff --git a/mrbgems/mruby-fiber/test/fiber.rb b/mrbgems/mruby-fiber/test/fiber.rb
index e10878bf4..c6f9d821f 100644
--- a/mrbgems/mruby-fiber/test/fiber.rb
+++ b/mrbgems/mruby-fiber/test/fiber.rb
@@ -8,6 +8,25 @@ assert('Fiber#resume') {
f.resume(2)
}
+assert('Fiber#transfer') do
+ f1 = Fiber.new do |v|
+ assert_raise(FiberError) { Fiber.current.transfer }
+ Fiber.yield v
+ end
+ f2 = Fiber.new do
+ f1.transfer(1)
+ Fiber.yield 2
+ end
+ assert_equal 1, f2.resume
+ assert_equal 2, f2.resume
+ f1.resume
+ f2.resume
+ assert_false f1.alive?
+ assert_false f2.alive?
+
+ assert_raise(FiberError) { Fiber.current.transfer }
+end
+
assert('Fiber#alive?') {
f = Fiber.new{ Fiber.yield }
f.resume