Commit a2472904 authored by take_cheeze's avatar take_cheeze

Print backtrace of crashed test in verbose mode.

parent d17506c1
...@@ -21,7 +21,7 @@ end ...@@ -21,7 +21,7 @@ end
## ##
# Create the assertion in a readable way # 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 = "#{err}#{str}"
msg += " [#{iso}]" if iso && iso != '' msg += " [#{iso}]" if iso && iso != ''
msg += " => #{e.message}" if e msg += " => #{e.message}" if e
...@@ -31,6 +31,7 @@ def assertion_string(err, str, iso=nil, e=nil) ...@@ -31,6 +31,7 @@ def assertion_string(err, str, iso=nil, e=nil)
msg += "\n - Assertion[#{idx}] Failed: #{str}\n#{diff}" msg += "\n - Assertion[#{idx}] Failed: #{str}\n#{diff}"
end end
end end
msg += "\nbacktrace:\n\t#{bt.join("\n\t")}" if bt
msg msg
end end
...@@ -56,11 +57,12 @@ def assert(str = 'Assertion failed', iso = '') ...@@ -56,11 +57,12 @@ def assert(str = 'Assertion failed', iso = '')
t_print('.') t_print('.')
end end
rescue Exception => e rescue Exception => e
bt = e.backtrace if $mrbtest_verbose
if e.class.to_s == 'MRubyTestSkip' if e.class.to_s == 'MRubyTestSkip'
$asserts.push "Skip: #{str} #{iso} #{e.cause}" $asserts.push "Skip: #{str} #{iso} #{e.cause}"
t_print('?') t_print('?')
else else
$asserts.push(assertion_string("#{e.class}: ", str, iso, e)) $asserts.push(assertion_string("#{e.class}: ", str, iso, e, bt))
$kill_test += 1 $kill_test += 1
t_print('X') t_print('X')
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment