Skip to content

Commit

Permalink
Merge pull request #206 from Shopify/rwstauner/stacktraces
Browse files Browse the repository at this point in the history
Strip extra TruffleRuby stacktrace lines from test output
  • Loading branch information
rwstauner committed May 16, 2023
2 parents d57c166 + 96618f9 commit ed18d9e
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 0 deletions.
25 changes: 25 additions & 0 deletions ruby/test/fixtures/test/backtrace_filters.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# frozen_string_literal: true

class BacktraceFilters
PATTERNS = [
# truffleruby has some extra lines before the usual ruby ones:
# "<internal:core> core/numeric.rb:182:in `math_coerce'"
%r{^<internal:},
]

def initialize(original_filter)
@original_filter = original_filter
end

def add_filter(*args)
@original_filter.add_filter(*args)
end

def filter(backtrace)
backtrace = @original_filter.filter(backtrace) if @original_filter

backtrace.reject do |line|
PATTERNS.any? { |pattern| line.match?(pattern) }
end
end
end
5 changes: 5 additions & 0 deletions ruby/test/fixtures/test/test_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,8 @@
end

require 'minitest/autorun'
require_relative './backtrace_filters'

Minitest.backtrace_filter = BacktraceFilters.new(
Minitest.backtrace_filter
)
2 changes: 2 additions & 0 deletions ruby/test/integration/minitest_redis_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -496,6 +496,8 @@ def test_junit_reporter
output = normalize(out.lines.last.strip)
assert_equal 'Ran 9 tests, 6 assertions, 1 failures, 1 errors, 1 skips, 2 requeues in X.XXs', output

# NOTE: To filter the TypeError backtrace below see test/fixtures/test/backtrace_filters.rb

assert_equal <<~XML, normalize_xml(File.read(@junit_path))
<?xml version="1.1" encoding="UTF-8"?>
<testsuites>
Expand Down

0 comments on commit ed18d9e

Please sign in to comment.