File: test_modify_expand.rb

package info (click to toggle)
jruby 1.7.26-1%2Bdeb9u1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 84,572 kB
  • sloc: ruby: 669,910; java: 253,056; xml: 35,152; ansic: 9,187; yacc: 7,267; cpp: 5,244; sh: 1,036; makefile: 345; jsp: 48; tcl: 40
file content (29 lines) | stat: -rw-r--r-- 816 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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