forked from ruby-prof/ruby-prof
-
Notifications
You must be signed in to change notification settings - Fork 0
/
line_number_test.rb
executable file
·74 lines (57 loc) · 1.53 KB
/
line_number_test.rb
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
67
68
69
70
71
72
73
74
#!/usr/bin/env ruby
# encoding: UTF-8
require './test_helper'
require 'prime'
class LineNumbers
def method1
a = 3
end
def method2
a = 3
method1
end
def method3
sleep(1)
end
end
# -- Tests ----
class LineNumbersTest < Test::Unit::TestCase
def test_function_line_no
numbers = LineNumbers.new
result = RubyProf.profile do
numbers.method2
end
methods = result.threads.values.first.sort.reverse
assert_equal(3, methods.length)
method = methods[0]
assert_equal('LineNumbersTest#test_function_line_no', method.full_name)
assert_equal(27, method.line)
method = methods[1]
assert_equal('LineNumbers#method2', method.full_name)
assert_equal(11, method.line)
method = methods[2]
assert_equal('LineNumbers#method1', method.full_name)
assert_equal(7, method.line)
end
def test_c_function
numbers = LineNumbers.new
result = RubyProf.profile do
numbers.method3
end
methods = result.threads.values.first.sort_by {|method| method.full_name}
assert_equal(3, methods.length)
# Methods:
# LineNumbers#method3
# LineNumbersTest#test_c_function
# Kernel#sleep
method = methods[0]
assert_equal('Kernel#sleep', method.full_name)
assert_equal(0, method.line)
method = methods[1]
assert_equal('LineNumbers#method3', method.full_name)
assert_equal(16, method.line)
method = methods[2]
assert_equal('LineNumbersTest#test_c_function', method.full_name)
assert_equal(50, method.line)
end
end