diff options
author | Samuel Williams <samuel.williams@oriontransfer.co.nz> | 2019-06-02 13:48:47 +1200 |
---|---|---|
committer | Samuel Williams <samuel.williams@oriontransfer.co.nz> | 2019-07-12 11:56:51 +1200 |
commit | 012e954b472d2e47b03647ac0c8f745416d7db58 (patch) | |
tree | f2f3f0f17de96445c361c358590dbac5a6db969d /bootstraptest | |
parent | 8745fa2ff0fbff67031bdecfdeea684b15515a2c (diff) | |
download | ruby-012e954b472d2e47b03647ac0c8f745416d7db58.tar.gz |
Improved fiber benchmarks. Increase number of iterations.
Diffstat (limited to 'bootstraptest')
-rw-r--r-- | bootstraptest/test_fiber.rb | 39 | ||||
-rw-r--r-- | bootstraptest/test_thread.rb | 21 |
2 files changed, 39 insertions, 21 deletions
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 @@ -324,10 +311,6 @@ assert_equal 'ok', %q{ }, '[ruby-dev:34492]' assert_normal_exit %q{ - at_exit { Fiber.new{}.resume } -} - -assert_normal_exit %q{ g = enum_for(:local_variables) loop { g.next } }, '[ruby-dev:34128]' @@ -353,10 +336,6 @@ assert_normal_exit %q{ }, '[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]' |