1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

test/ruby/test_env.rb: test memory leaks only on Windows

* test/ruby/test_env.rb (test_memory_leak_{aset,select,shift}):
  test for Windows platform specific code.
  (test_memory_crash_select): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46822 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2014-07-15 08:04:59 +00:00
parent 83edc945fa
commit 163c299420

View file

@ -509,43 +509,45 @@ class TestEnv < Test::Unit::TestCase
end end
end end
def test_memory_leak_aset if RUBY_PLATFORM =~ /bccwin|mswin|mingw/
bug9977 = '[ruby-dev:48323] [Bug #9977]' def test_memory_leak_aset
assert_no_memory_leak([], <<-'end;', "5_000.times(&doit)", bug9977, limit: 2.0) bug9977 = '[ruby-dev:48323] [Bug #9977]'
ENV.clear assert_no_memory_leak([], <<-'end;', "5_000.times(&doit)", bug9977, limit: 2.0)
k = 'FOO' ENV.clear
v = (ENV[k] = 'bar'*5000 rescue 'bar'*1500) k = 'FOO'
doit = proc {ENV[k] = v} v = (ENV[k] = 'bar'*5000 rescue 'bar'*1500)
500.times(&doit) doit = proc {ENV[k] = v}
end; 500.times(&doit)
end end;
end
def test_memory_leak_select def test_memory_leak_select
bug9978 = '[ruby-dev:48325] [Bug #9978]' bug9978 = '[ruby-dev:48325] [Bug #9978]'
assert_no_memory_leak([], <<-'end;', "5_000.times(&doit)", bug9978, limit: 2.0) assert_no_memory_leak([], <<-'end;', "5_000.times(&doit)", bug9978, limit: 2.0)
ENV.clear ENV.clear
k = 'FOO' k = 'FOO'
(ENV[k] = 'bar'*5000 rescue 'bar'*1500) (ENV[k] = 'bar'*5000 rescue 'bar'*1500)
doit = proc {ENV.select {break}} doit = proc {ENV.select {break}}
500.times(&doit) 500.times(&doit)
end; end;
end end
def test_memory_crash_select def test_memory_crash_select
assert_normal_exit(<<-'end;') assert_normal_exit(<<-'end;')
1000.times {ENV["FOO#{i}"] = 'bar'} 1000.times {ENV["FOO#{i}"] = 'bar'}
ENV.select {ENV.clear} ENV.select {ENV.clear}
end; end;
end end
def test_memory_leak_shift def test_memory_leak_shift
bug9983 = '[ruby-dev:48332] [Bug #9983]' bug9983 = '[ruby-dev:48332] [Bug #9983]'
assert_no_memory_leak([], <<-'end;', "5_000.times(&doit)", bug9983, limit: 2.0) assert_no_memory_leak([], <<-'end;', "5_000.times(&doit)", bug9983, limit: 2.0)
ENV.clear ENV.clear
k = 'FOO' k = 'FOO'
v = (ENV[k] = 'bar'*5000 rescue 'bar'*1500) v = (ENV[k] = 'bar'*5000 rescue 'bar'*1500)
doit = proc {ENV[k] = v; ENV.shift} doit = proc {ENV[k] = v; ENV.shift}
500.times(&doit) 500.times(&doit)
end; end;
end
end end
end end