Sha256: afbec51117e0643bc8e0498021e9124da92d073d451187fdb6d2122e55c86bbe
Contents?: true
Size: 1.65 KB
Versions: 30
Compression:
Stored size: 1.65 KB
Contents
module Test module Unit module Util module BacktraceFilter TESTUNIT_FILE_SEPARATORS = %r{[\\/:]} TESTUNIT_PREFIX = __FILE__.split(TESTUNIT_FILE_SEPARATORS)[0..-3] TESTUNIT_RB_FILE = /\.rb\Z/ module_function def filter_backtrace(backtrace, prefix=nil) return ["No backtrace"] unless backtrace return backtrace if ENV["TEST_UNIT_ALL_BACKTRACE"] if prefix split_prefix = prefix.split(TESTUNIT_FILE_SEPARATORS) else split_prefix = TESTUNIT_PREFIX end test_unit_internal_p = lambda do |entry| components = entry.split(TESTUNIT_FILE_SEPARATORS) split_entry = components[0, split_prefix.size] next false unless split_entry[0..-2] == split_prefix[0..-2] split_entry[-1].sub(TESTUNIT_RB_FILE, '') == split_prefix[-1] end jruby_internal_p = lambda do |entry| (/\Aorg\/jruby\// =~ entry) ? true : false end found_prefix = false new_backtrace = backtrace.reverse.reject do |entry| if test_unit_internal_p.call(entry) found_prefix = true true elsif found_prefix jruby_internal_p.call(entry) else true end end.reverse if new_backtrace.empty? new_backtrace = backtrace.reject do |entry| test_unit_internal_p.call(entry) or jruby_internal_p.call(entry) end new_backtrace = backtrace if new_backtrace.empty? end new_backtrace end end end end end
Version data entries
30 entries across 14 versions & 4 rubygems