Index: test_trace_func.rb =================================================================== --- test_trace_func.rb (Revision 4796) +++ test_trace_func.rb (Arbeitskopie) @@ -61,14 +61,14 @@ set_trace_func nil - expected = [" line ./test/test_trace_func.rb:60 test_method_trace TestTraceFunc", - " call ./test/test_trace_func.rb:49 sample_method TestTraceFunc", - " line ./test/test_trace_func.rb:50 sample_method TestTraceFunc", - " c-call ./test/test_trace_func.rb:50 + Fixnum", - " c-return ./test/test_trace_func.rb:50 + Fixnum", - " return ./test/test_trace_func.rb:51 sample_method TestTraceFunc", - " line ./test/test_trace_func.rb:62 test_method_trace TestTraceFunc", - " c-call ./test/test_trace_func.rb:62 set_trace_func Kernel"]; + expected = [" line #{__FILE__}:60 test_method_trace TestTraceFunc", + " call #{__FILE__}:49 sample_method TestTraceFunc", + " line #{__FILE__}:50 sample_method TestTraceFunc", + " c-call #{__FILE__}:50 + Fixnum", + " c-return #{__FILE__}:50 + Fixnum", + " return #{__FILE__}:51 sample_method TestTraceFunc", + " line #{__FILE__}:62 test_method_trace TestTraceFunc", + " c-call #{__FILE__}:62 set_trace_func Kernel"]; assert_equal(expected, output) end @@ -93,5 +93,30 @@ assert_equal(expected, results) end + + def test_raise_event + output = [] + set_trace_func proc { |event, file, line, id, binding, classname| + output << sprintf("%s %s:%d %s %s", event, file, line, id, classname) + } + + raise rescue + + set_trace_func nil + + expected = ["line #{__FILE__}:103 test_raise_event TestTraceFunc", + "c-call #{__FILE__}:103 raise Kernel", + "c-call #{__FILE__}:103 new Class", + "c-call #{__FILE__}:103 initialize Exception", + "c-return #{__FILE__}:103 initialize Exception", + "c-return #{__FILE__}:103 new Class", + "raise #{__FILE__}:103 raise Kernel", + "c-return #{__FILE__}:103 raise Kernel", + "c-call #{__FILE__}:103 === Module", + "c-return #{__FILE__}:103 === Module", + "c-call #{__FILE__}:103 set_trace_func Kernel"] + + assert_equal(expected, output) + end end