1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
#!/usr/bin/env ruby
# encoding: UTF-8
require File.expand_path('../test_helper', __FILE__)
# -- Tests ----
class CallTreesTest < TestCase
def some_method_1
some_method_2
end
def some_method_2
end
def test_call_infos
result = RubyProf.profile do
some_method_1
end
thread = result.threads.first
assert_equal(3, thread.methods.length)
method = thread.methods[0]
assert_equal('CallTreesTest#test_call_infos', method.full_name)
call_trees = method.call_trees
assert_empty(call_trees.callers)
assert_equal(1, call_trees.callees.length)
assert_kind_of(RubyProf::AggregateCallTree, call_trees.callees[0])
assert_equal('CallTreesTest#some_method_1', call_trees.callees[0].target.full_name)
method = thread.methods[1]
assert_equal('CallTreesTest#some_method_1', method.full_name)
call_trees = method.call_trees
assert_equal(1, call_trees.callers.length)
assert_kind_of(RubyProf::AggregateCallTree, call_trees.callers[0])
assert_equal('CallTreesTest#test_call_infos', call_trees.callers[0].parent.target.full_name)
assert_equal(1, call_trees.callees.length)
assert_kind_of(RubyProf::AggregateCallTree, call_trees.callees[0])
assert_equal('CallTreesTest#some_method_2', call_trees.callees[0].target.full_name)
method = thread.methods[2]
assert_equal('CallTreesTest#some_method_2', method.full_name)
call_trees = method.call_trees
assert_equal(1, call_trees.callers.length)
assert_kind_of(RubyProf::AggregateCallTree, call_trees.callers[0])
assert_equal('CallTreesTest#some_method_1', call_trees.callers[0].parent.target.full_name)
assert_empty(call_trees.callees)
end
def test_gc
result = RubyProf.profile do
some_method_1
end
method = result.threads.first.methods[1]
100.times do |i|
method.call_trees.callers
GC.start
end
assert(true)
end
end
|