From 012e954b472d2e47b03647ac0c8f745416d7db58 Mon Sep 17 00:00:00 2001 From: Samuel Williams Date: Sun, 2 Jun 2019 13:48:47 +1200 Subject: Improved fiber benchmarks. Increase number of iterations. --- bootstraptest/test_fiber.rb | 39 +++++++++++++++++++++++++++++++++++++++ bootstraptest/test_thread.rb | 21 --------------------- 2 files changed, 39 insertions(+), 21 deletions(-) create mode 100644 bootstraptest/test_fiber.rb (limited to 'bootstraptest') diff --git a/bootstraptest/test_fiber.rb b/bootstraptest/test_fiber.rb new file mode 100644 index 0000000000..35e1bf6851 --- /dev/null +++ b/bootstraptest/test_fiber.rb @@ -0,0 +1,39 @@ +show_limit %q{ + fibers = [] + begin + fiber = Fiber.new{Fiber.yield} + fiber.resume + fibers << fiber + + raise Exception, "skipping" if fibers.count >= 10_000 + rescue Exception => error + puts "Fiber count: #{fibers.count} (#{error})" + break + end while true +} + +assert_equal %q{ok}, %q{ + Fiber.new{ + }.resume + :ok +} + +assert_equal %q{ok}, %q{ + 10_000.times.collect{Fiber.new{}} + :ok +} + +assert_equal %q{ok}, %q{ + fibers = 100.times.collect{Fiber.new{Fiber.yield}} + fibers.each(&:resume) + fibers.each(&:resume) + :ok +} + +assert_normal_exit %q{ + at_exit { Fiber.new{}.resume } +} + +assert_normal_exit %q{ + Fiber.new(&Object.method(:class_eval)).resume("foo") +}, '[ruby-dev:34128]' diff --git a/bootstraptest/test_thread.rb b/bootstraptest/test_thread.rb index 03fb441441..3ff55bab11 100644 --- a/bootstraptest/test_thread.rb +++ b/bootstraptest/test_thread.rb @@ -9,19 +9,6 @@ show_limit %q{ break end while true } -show_limit %q{ - fibers = [] - begin - fiber = Fiber.new{Fiber.yield} - fiber.resume - fibers << fiber - - raise Exception, "skipping" if fibers.count >= 10_000 - rescue Exception => error - puts "Fiber count: #{fibers.count} (#{error})" - break - end while true -} assert_equal %q{ok}, %q{ Thread.new{ }.join @@ -323,10 +310,6 @@ assert_equal 'ok', %q{ m }, '[ruby-dev:34492]' -assert_normal_exit %q{ - at_exit { Fiber.new{}.resume } -} - assert_normal_exit %q{ g = enum_for(:local_variables) loop { g.next } @@ -352,10 +335,6 @@ assert_normal_exit %q{ loop { g.next } }, '[ruby-dev:34128]' -assert_normal_exit %q{ - Fiber.new(&Object.method(:class_eval)).resume("foo") -}, '[ruby-dev:34128]' - assert_normal_exit %q{ Thread.new("foo", &Object.method(:class_eval)).join }, '[ruby-dev:34128]' -- cgit v1.2.3