From a24729044acffa7b6d7a34387adb7e18db65288c Mon Sep 17 00:00:00 2001 From: take_cheeze Date: Sat, 19 Jul 2014 22:33:13 +0900 Subject: Print backtrace of crashed test in verbose mode. --- test/assert.rb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'test/assert.rb') diff --git a/test/assert.rb b/test/assert.rb index a4ee00299..72e4d3b37 100644 --- a/test/assert.rb +++ b/test/assert.rb @@ -21,7 +21,7 @@ end ## # Create the assertion in a readable way -def assertion_string(err, str, iso=nil, e=nil) +def assertion_string(err, str, iso=nil, e=nil, bt=nil) msg = "#{err}#{str}" msg += " [#{iso}]" if iso && iso != '' msg += " => #{e.message}" if e @@ -31,6 +31,7 @@ def assertion_string(err, str, iso=nil, e=nil) msg += "\n - Assertion[#{idx}] Failed: #{str}\n#{diff}" end end + msg += "\nbacktrace:\n\t#{bt.join("\n\t")}" if bt msg end @@ -56,11 +57,12 @@ def assert(str = 'Assertion failed', iso = '') t_print('.') end rescue Exception => e + bt = e.backtrace if $mrbtest_verbose if e.class.to_s == 'MRubyTestSkip' $asserts.push "Skip: #{str} #{iso} #{e.cause}" t_print('?') else - $asserts.push(assertion_string("#{e.class}: ", str, iso, e)) + $asserts.push(assertion_string("#{e.class}: ", str, iso, e, bt)) $kill_test += 1 t_print('X') end -- cgit v1.2.3