source: extensions/gsdl-video/trunk/installed/cmdline/lib/ruby/1.8/test/unit/util/backtracefilter.rb@ 18425

Last change on this file since 18425 was 18425, checked in by davidb, 15 years ago

Video extension to Greenstone

File size: 1.3 KB
Line 
1module Test
2 module Unit
3 module Util
4 module BacktraceFilter
5 TESTUNIT_FILE_SEPARATORS = %r{[\\/:]}
6 TESTUNIT_PREFIX = __FILE__.split(TESTUNIT_FILE_SEPARATORS)[0..-3]
7 TESTUNIT_RB_FILE = /\.rb\Z/
8
9 def filter_backtrace(backtrace, prefix=nil)
10 return ["No backtrace"] unless(backtrace)
11 split_p = if(prefix)
12 prefix.split(TESTUNIT_FILE_SEPARATORS)
13 else
14 TESTUNIT_PREFIX
15 end
16 match = proc do |e|
17 split_e = e.split(TESTUNIT_FILE_SEPARATORS)[0, split_p.size]
18 next false unless(split_e[0..-2] == split_p[0..-2])
19 split_e[-1].sub(TESTUNIT_RB_FILE, '') == split_p[-1]
20 end
21 return backtrace unless(backtrace.detect(&match))
22 found_prefix = false
23 new_backtrace = backtrace.reverse.reject do |e|
24 if(match[e])
25 found_prefix = true
26 true
27 elsif(found_prefix)
28 false
29 else
30 true
31 end
32 end.reverse
33 new_backtrace = (new_backtrace.empty? ? backtrace : new_backtrace)
34 new_backtrace = new_backtrace.reject(&match)
35 new_backtrace.empty? ? backtrace : new_backtrace
36 end
37 end
38 end
39 end
40end
Note: See TracBrowser for help on using the repository browser.