test/fiber_test.rb in ruby-prof-0.15.9 vs test/fiber_test.rb in ruby-prof-0.16.0
- old
+ new
@@ -35,31 +35,45 @@
# Need to use wall time for this test due to the sleep calls
RubyProf::measure_mode = RubyProf::WALL_TIME
@fiber_ids = Set.new
@root_fiber = Fiber.current.object_id
@thread_id = Thread.current.object_id
- @result = RubyProf.profile { fiber_test }
end
def test_fibers
- profiled_fiber_ids = @result.threads.map(&:fiber_id)
- assert_equal(2, @result.threads.length)
- assert_equal([@thread_id], @result.threads.map(&:id).uniq)
+ result = RubyProf.profile { fiber_test }
+ profiled_fiber_ids = result.threads.map(&:fiber_id)
+ assert_equal(2, result.threads.length)
+ assert_equal([@thread_id], result.threads.map(&:id).uniq)
assert_equal(@fiber_ids, Set.new(profiled_fiber_ids))
assert profiled_fiber_ids.include?(@root_fiber)
- assert(root_fiber_profile = @result.threads.detect{|t| t.fiber_id == @root_fiber})
- assert(enum_fiber_profile = @result.threads.detect{|t| t.fiber_id != @root_fiber})
+ assert(root_fiber_profile = result.threads.detect{|t| t.fiber_id == @root_fiber})
+ assert(enum_fiber_profile = result.threads.detect{|t| t.fiber_id != @root_fiber})
assert_in_delta(0.3, root_fiber_profile.total_time, 0.05)
assert_in_delta(0.2, enum_fiber_profile.total_time, 0.05)
assert(method_next = root_fiber_profile.methods.detect{|m| m.full_name == "Enumerator#next"})
assert(method_each = enum_fiber_profile.methods.detect{|m| m.full_name == "Enumerator#each"})
assert_in_delta(0.2, method_next.total_time, 0.05)
assert_in_delta(0.2, method_each.total_time, 0.05)
+ end
- # RubyProf::CallInfoPrinter.new(@result).print
+ def test_merged_fibers
+ result = RubyProf.profile(merge_fibers: true) { fiber_test }
+ assert_equal(1, result.threads.length)
+
+ profile = result.threads.first
+ assert_equal 0, profile.fiber_id
+
+ assert_in_delta(0.3, profile.total_time, 0.05)
+
+ assert(method_next = profile.methods.detect{|m| m.full_name == "Enumerator#next"})
+ assert(method_each = profile.methods.detect{|m| m.full_name == "Enumerator#each"})
+
+ assert_in_delta(0.2, method_next.total_time, 0.05)
+ assert_in_delta(0.2, method_each.total_time, 0.05)
end
end