diff options
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | ext/objspace/objspace_dump.c | 4 | ||||
-rw-r--r-- | test/objspace/test_objspace.rb | 13 |
3 files changed, 18 insertions, 7 deletions
@@ -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 diff --git a/ext/objspace/objspace_dump.c b/ext/objspace/objspace_dump.c index df1395d07a..1b68d9ab8b 100644 --- a/ext/objspace/objspace_dump.c +++ b/ext/objspace/objspace_dump.c @@ -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"); } diff --git a/test/objspace/test_objspace.rb b/test/objspace/test_objspace.rb index 850b523862..f3bb3cd8c6 100644 --- a/test/objspace/test_objspace.rb +++ b/test/objspace/test_objspace.rb @@ -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 |