From fc018c9b346702dae0917f5312927c3beab1c0ec Mon Sep 17 00:00:00 2001 From: nobu Date: Wed, 8 Feb 2012 13:35:27 +0000 Subject: * test/-ext-/string/test_modify_expand.rb: test for r34492. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34493 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/-ext-/string/test_modify_expand.rb | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 test/-ext-/string/test_modify_expand.rb (limited to 'test/-ext-/string/test_modify_expand.rb') diff --git a/test/-ext-/string/test_modify_expand.rb b/test/-ext-/string/test_modify_expand.rb new file mode 100644 index 0000000000..5fee7b3580 --- /dev/null +++ b/test/-ext-/string/test_modify_expand.rb @@ -0,0 +1,29 @@ +require 'test/unit' +require "-test-/string/string" +require_relative '../../ruby/envutil' + +class Test_StringModifyExpand < Test::Unit::TestCase + def test_modify_expand_memory_leak + before = after = nil + args = [ + "--disable=gems", "-r-test-/string/string", + "-I"+File.expand_path("../../..", __FILE__), + "-rruby/memory_status", + "-e", <<-CMD + s=Bug::String.new + size=Memory::Status.new.size + puts size + 10.times{s.modify_expand!(size)} + s.replace("") + puts Memory::Status.new.size + CMD + ] + status = EnvUtil.invoke_ruby(args, "", true) do |in_p, out_p, err_p, pid| + before, after = out_p.readlines.map(&:to_i) + Process.wait(pid) + $? + end + assert_equal(true, status.success?) + assert_operator after.fdiv(before), :<, 2 + end +end -- cgit v1.2.3