Skip to content

Commit 69f7b4f

Browse files
committed
merge revision(s) r46585,r46595,r46822: [Backport ruby#9977] [Backport ruby#9978] [Backport ruby#9983]
test_env.rb: rehearsal * test/ruby/test_env.rb (test_memory_leak_{aset,select,shift}): have a rehearsal before the main loop. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@47056 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
1 parent b57a859 commit 69f7b4f

File tree

2 files changed

+41
-33
lines changed

2 files changed

+41
-33
lines changed

test/ruby/test_env.rb

Lines changed: 40 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -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
446454
end

version.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#define RUBY_VERSION "2.1.2"
22
#define RUBY_RELEASE_DATE "2014-08-04"
3-
#define RUBY_PATCHLEVEL 194
3+
#define RUBY_PATCHLEVEL 195
44

55
#define RUBY_RELEASE_YEAR 2014
66
#define RUBY_RELEASE_MONTH 8

0 commit comments

Comments
 (0)