summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--ext/objspace/objspace_dump.c4
-rw-r--r--test/objspace/test_objspace.rb13
3 files changed, 18 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index 94172bb7ea..30ee96bae3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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