* ext/objspace/objspace_dump.c: test fixes and win32 compatibility

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43824 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
tmm1 2013-11-24 00:22:19 +00:00
Родитель 80c4b4b3d7
Коммит 34176b023e
3 изменённых файлов: 18 добавлений и 7 удалений

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

@ -1,3 +1,11 @@
Sun Nov 24 09:18:06 2013 Aman Gupta <ruby@tmm1.net>
* ext/objspace/objspace_dump.c (dump_object): Use PRIuSIZE to print
size_t for better win32 compatibility.
* test/objspace/test_objspace.rb (test_dump_all): Hold reference to
test string to avoid failure due to GC. Reduce size of failure message
using grep(/TEST STRING/).
Sat Nov 23 13:38:00 2013 Kyle Stevens <kstevens715@gmail.com>
* lib/csv.rb: If skip_lines is set to a String, convert it to a Regexp

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

@ -240,11 +240,11 @@ dump_object(VALUE obj, struct dump_config *dc)
dump_append(dc, ", \"file\":\"%s\", \"line\":%lu", ainfo->path, ainfo->line);
if (RTEST(ainfo->mid))
dump_append(dc, ", \"method\":\"%s\"", rb_id2name(SYM2ID(ainfo->mid)));
dump_append(dc, ", \"generation\":%zu", ainfo->generation);
dump_append(dc, ", \"generation\":%"PRIuSIZE, ainfo->generation);
}
if ((memsize = rb_obj_memsize_of(obj)) > 0)
dump_append(dc, ", \"memsize\":%zu", memsize);
dump_append(dc, ", \"memsize\":%"PRIuSIZE, memsize);
dump_append(dc, "}\n");
}

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

@ -239,30 +239,33 @@ class TestObjSpace < Test::Unit::TestCase
end
def test_dump_all
entry = /"value":"TEST STRING", "encoding":"UTF-8", "file":"-", "line":4, "method":"dump_my_heap_please"/
assert_in_out_err(%w[-robjspace], <<-'end;', entry)
entry = /"bytesize":11, "value":"TEST STRING", "encoding":"UTF-8", "file":"-", "line":4, "method":"dump_my_heap_please", "generation":/
assert_in_out_err(%w[-robjspace], <<-'end;') do |output, error|
def dump_my_heap_please
ObjectSpace.trace_object_allocations_start
GC.start
"TEST STRING".force_encoding("UTF-8")
str = "TEST STRING".force_encoding("UTF-8")
ObjectSpace.dump_all(output: :stdout)
end
dump_my_heap_please
end;
assert_match(entry, output.grep(/TEST STRING/).join("\n"))
end
assert_in_out_err(%w[-robjspace], <<-'end;') do |(output), (error)|
def dump_my_heap_please
ObjectSpace.trace_object_allocations_start
GC.start
"TEST STRING".force_encoding("UTF-8")
str = "TEST STRING".force_encoding("UTF-8")
ObjectSpace.dump_all().path
end
puts dump_my_heap_please
end;
skip if /is not supported/ =~ error
assert_match(entry, File.read(output))
assert_match(entry, File.readlines(output).grep(/TEST STRING/).join("\n"))
File.unlink(output)
end
end