* bootstraptest/runner.rb: show source code in error message.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11878 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
aamine 2007-02-25 02:10:38 +00:00
Родитель 71986ef6bc
Коммит 565bcdcb30
2 изменённых файлов: 24 добавлений и 5 удалений

Просмотреть файл

@ -1,3 +1,7 @@
Sun Feb 25 11:09:16 2007 Minero Aoki <aamine@loveruby.net>
* bootstraptest/runner.rb: show source code in error message.
Sun Feb 25 09:39:50 2007 Koichi Sasada <ko1@atdot.net>
* yarvcore.h:

Просмотреть файл

@ -9,7 +9,7 @@ $LOAD_PATH.unshift "#{File.dirname($0)}/lib"
require 'fileutils'
def main
@ruby = nil
@ruby = File.expand_path('miniruby')
@verbose = false
dir = 'bootstraptest.tmpwd'
tests = nil
@ -69,22 +69,37 @@ def exec_test(pathes)
end
end
def assert_equal(expected, really)
def assert_equal(expected, testsrc)
newtest
$stderr.puts "\##{@count} #{@location}" if @verbose
restr = get_result_string(really)
result = get_result_string(testsrc)
check_coredump
if expected == restr
if expected == result
$stderr.print '.'
else
$stderr.print 'F'
error "expected #{expected.inspect} but is: #{restr.inspect}"
error pretty(testsrc, expected, result)
end
rescue Exception => err
$stderr.print 'E'
error err.message
end
def pretty(src, ex, result)
(/\n/ =~ src ? "\n#{adjust_indent(src)}" : src) +
" #=> #{result.inspect} (expected #{ex.inspect})"
end
INDENT = 27
def adjust_indent(src)
untabify(src).gsub(/^ {#{INDENT}}/o, '').gsub(/^/, ' ')
end
def untabify(str)
str.gsub(/^\t+/) {|tabs| ' ' * (8 * tabs.size) }
end
def get_result_string(src)
if @ruby
File.open('bootstraptest.tmp.rb', 'w') {|f|