Skip to content

Commit

Permalink
Merge pull request #152 from Shopify/fix-ruby-3-test-suite
Browse files Browse the repository at this point in the history
Fix ruby 3 test suite
  • Loading branch information
tenderlove committed Apr 29, 2021
2 parents 3e2ef85 + 0f36fd0 commit aa15f48
Showing 1 changed file with 36 additions and 9 deletions.
45 changes: 36 additions & 9 deletions test/test_stackprof.rb
Expand Up @@ -39,16 +39,30 @@ def test_object_allocation
end
assert_equal :object, profile[:mode]
assert_equal 1, profile[:interval]
assert_equal 2, profile[:samples]
if RUBY_VERSION >= '3'
assert_equal 4, profile[:samples]
else
assert_equal 2, profile[:samples]
end

frame = profile[:frames].values.first
assert_includes frame[:name], "StackProfTest#test_object_allocation"
assert_equal 2, frame[:samples]
assert_includes [profile_base_line - 2, profile_base_line], frame[:line]
assert_equal [1, 1], frame[:lines][profile_base_line+1]
assert_equal [1, 1], frame[:lines][profile_base_line+2]
if RUBY_VERSION >= '3'
assert_equal [2, 1], frame[:lines][profile_base_line+1]
assert_equal [2, 1], frame[:lines][profile_base_line+2]
else
assert_equal [1, 1], frame[:lines][profile_base_line+1]
assert_equal [1, 1], frame[:lines][profile_base_line+2]
end
frame = profile[:frames].values[1] if RUBY_VERSION < '2.3'
assert_equal [2, 0], frame[:lines][profile_base_line]

if RUBY_VERSION >= '3'
assert_equal [4, 0], frame[:lines][profile_base_line]
else
assert_equal [2, 0], frame[:lines][profile_base_line]
end
end

def test_object_allocation_interval
Expand All @@ -64,7 +78,8 @@ def test_cputime
end

assert_operator profile[:samples], :>=, 1
frame = profile[:frames].values.first
offset = RUBY_VERSION >= '3' ? 1 : 0
frame = profile[:frames].values[offset]
assert_includes frame[:name], "StackProfTest#math"
end

Expand All @@ -74,7 +89,11 @@ def test_walltime
end

frame = profile[:frames].values.first
assert_equal "StackProfTest#idle", frame[:name]
if RUBY_VERSION >= '3'
assert_equal "IO.select", frame[:name]
else
assert_equal "StackProfTest#idle", frame[:name]
end
assert_in_delta 200, frame[:samples], 25
end

Expand All @@ -89,10 +108,16 @@ def test_custom
assert_equal :custom, profile[:mode]
assert_equal 10, profile[:samples]

frame = profile[:frames].values.first
offset = RUBY_VERSION >= '3' ? 1 : 0
frame = profile[:frames].values[offset]
assert_includes frame[:name], "StackProfTest#test_custom"
assert_includes [profile_base_line-2, profile_base_line+1], frame[:line]
assert_equal [10, 10], frame[:lines][profile_base_line+2]

if RUBY_VERSION >= '3'
assert_equal [10, 0], frame[:lines][profile_base_line+2]
else
assert_equal [10, 10], frame[:lines][profile_base_line+2]
end
end

def test_raw
Expand All @@ -105,7 +130,9 @@ def test_raw
raw = profile[:raw]
assert_equal 10, raw[-1]
assert_equal raw[0] + 2, raw.size
assert_includes profile[:frames][raw[-2]][:name], 'StackProfTest#test_raw'

offset = RUBY_VERSION >= '3' ? -3 : -2
assert_includes profile[:frames][raw[offset]][:name], 'StackProfTest#test_raw'
assert_equal 10, profile[:raw_timestamp_deltas].size
end

Expand Down

0 comments on commit aa15f48

Please sign in to comment.