@@ -410,37 +410,45 @@ def test_win32_blocksize
410410 end
411411 end
412412
413- def test_memory_leak_aset
414- bug9977 = '[ruby-dev:48323] [Bug #9977]'
415- assert_no_memory_leak ( [ ] , <<-'end;' , "5_000.times {ENV[k] = v}" , bug9977 )
416- ENV.clear
417- k = 'FOO'
418- v = (ENV[k] = 'bar'*5000 rescue 'bar'*1500)
419- end;
420- end
421-
422- def test_memory_leak_select
423- bug9978 = '[ruby-dev:48325] [Bug #9978]'
424- assert_no_memory_leak ( [ ] , <<-'end;' , "5_000.times {ENV.select {break}}" , bug9978 )
425- ENV.clear
426- k = 'FOO'
427- (ENV[k] = 'bar'*5000 rescue 'bar'*1500)
428- end;
429- end
430-
431- def test_memory_crash_select
432- assert_normal_exit ( <<-'end;' )
433- 1000.times {ENV["FOO#{i}"] = 'bar'}
434- ENV.select {ENV.clear}
435- end;
436- end
437-
438- def test_memory_leak_shift
439- bug9983 = '[ruby-dev:48332] [Bug #9983]'
440- assert_no_memory_leak ( [ ] , <<-'end;' , "5_000.times {ENV.shift; ENV[k] = v}" , bug9983 )
441- ENV.clear
442- k = 'FOO'
443- v = (ENV[k] = 'bar'*5000 rescue 'bar'*1500)
444- end;
413+ if RUBY_PLATFORM =~ /bccwin|mswin|mingw/
414+ def test_memory_leak_aset
415+ bug9977 = '[ruby-dev:48323] [Bug #9977]'
416+ assert_no_memory_leak ( [ ] , <<-'end;' , "5_000.times(&doit)" , bug9977 , limit : 2.0 )
417+ ENV.clear
418+ k = 'FOO'
419+ v = (ENV[k] = 'bar'*5000 rescue 'bar'*1500)
420+ doit = proc {ENV[k] = v}
421+ 500.times(&doit)
422+ end;
423+ end
424+
425+ def test_memory_leak_select
426+ bug9978 = '[ruby-dev:48325] [Bug #9978]'
427+ assert_no_memory_leak ( [ ] , <<-'end;' , "5_000.times(&doit)" , bug9978 , limit : 2.0 )
428+ ENV.clear
429+ k = 'FOO'
430+ (ENV[k] = 'bar'*5000 rescue 'bar'*1500)
431+ doit = proc {ENV.select {break}}
432+ 500.times(&doit)
433+ end;
434+ end
435+
436+ def test_memory_crash_select
437+ assert_normal_exit ( <<-'end;' )
438+ 1000.times {ENV["FOO#{i}"] = 'bar'}
439+ ENV.select {ENV.clear}
440+ end;
441+ end
442+
443+ def test_memory_leak_shift
444+ bug9983 = '[ruby-dev:48332] [Bug #9983]'
445+ assert_no_memory_leak ( [ ] , <<-'end;' , "5_000.times(&doit)" , bug9983 , limit : 2.0 )
446+ ENV.clear
447+ k = 'FOO'
448+ v = (ENV[k] = 'bar'*5000 rescue 'bar'*1500)
449+ doit = proc {ENV[k] = v; ENV.shift}
450+ 500.times(&doit)
451+ end;
452+ end
445453 end
446454end
0 commit comments