Expose Test.filter_backtrace for the default gems.

This commit is contained in:
Hiroshi SHIBATA 2023-08-29 13:44:03 +09:00
parent 589cd0e511
commit 141102b0b0
Notes: git 2023-08-29 06:05:50 +00:00
2 changed files with 37 additions and 36 deletions

View File

@ -1,6 +1,43 @@
# frozen_string_literal: true
module Test
class << self
##
# Filter object for backtraces.
attr_accessor :backtrace_filter
end
class BacktraceFilter # :nodoc:
def filter bt
return ["No backtrace"] unless bt
new_bt = []
pattern = %r[/(?:lib\/test/|core_assertions\.rb:)]
unless $DEBUG then
bt.each do |line|
break if pattern.match?(line)
new_bt << line
end
new_bt = bt.reject { |line| pattern.match?(line) } if new_bt.empty?
new_bt = bt.dup if new_bt.empty?
else
new_bt = bt.dup
end
new_bt
end
end
self.backtrace_filter = BacktraceFilter.new
def self.filter_backtrace bt # :nodoc:
backtrace_filter.filter bt
end
module Unit
module Assertions
def assert_raises(*exp, &b)

View File

@ -24,42 +24,6 @@ require 'optparse'
# See Test::Unit
module Test
class << self
##
# Filter object for backtraces.
attr_accessor :backtrace_filter
end
class BacktraceFilter # :nodoc:
def filter bt
return ["No backtrace"] unless bt
new_bt = []
pattern = %r[/(?:lib\/test/|core_assertions\.rb:)]
unless $DEBUG then
bt.each do |line|
break if pattern.match?(line)
new_bt << line
end
new_bt = bt.reject { |line| pattern.match?(line) } if new_bt.empty?
new_bt = bt.dup if new_bt.empty?
else
new_bt = bt.dup
end
new_bt
end
end
self.backtrace_filter = BacktraceFilter.new
def self.filter_backtrace bt # :nodoc:
backtrace_filter.filter bt
end
##
# Test::Unit is an implementation of the xUnit testing framework for Ruby.
module Unit