diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-03-09 04:19:10 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-03-09 04:19:10 +0000 |
commit | cb05f199ee303448129a84d07a2ca698890f4c1f (patch) | |
tree | df3b79f04b4d5e1fab5718456faa990c62347cd3 | |
parent | e20cd8ee490537127fa07e22991bdc22402953e4 (diff) |
tests for [Bug #9599]
* test/dl/test_{cptr,handle}.rb: tests for [Bug #9599].
* test/fiddle/test_{handle,pointer}.rb: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45299 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | test/dl/test_cptr.rb | 4 | ||||
-rw-r--r-- | test/dl/test_handle.rb | 4 | ||||
-rw-r--r-- | test/fiddle/test_handle.rb | 7 | ||||
-rw-r--r-- | test/fiddle/test_pointer.rb | 4 |
4 files changed, 19 insertions, 0 deletions
diff --git a/test/dl/test_cptr.rb b/test/dl/test_cptr.rb index c3793859d7..13700cb3f2 100644 --- a/test/dl/test_cptr.rb +++ b/test/dl/test_cptr.rb @@ -219,4 +219,8 @@ module DL assert_raise(DLError) {nullpo[0] = 1} end end + + def test_no_memory_leak + assert_no_memory_leak(%w[-W0 -rdl.so], '', '100_000.times {DL::CPtr.allocate}', limit: 1.2) + end end diff --git a/test/dl/test_handle.rb b/test/dl/test_handle.rb index 83b8af1960..fc5053a87e 100644 --- a/test/dl/test_handle.rb +++ b/test/dl/test_handle.rb @@ -184,4 +184,8 @@ module DL DL.dlopen("/lib/libc.so.7").sym('strcpy') end if /freebsd/=~ RUBY_PLATFORM end + + def test_no_memory_leak + assert_no_memory_leak(%w[-W0 -rdl.so], '', '100_000.times {DL::Handle.allocate}; GC.start', limit: 1.2) + end end diff --git a/test/fiddle/test_handle.rb b/test/fiddle/test_handle.rb index c598cc33a2..aa18c03978 100644 --- a/test/fiddle/test_handle.rb +++ b/test/fiddle/test_handle.rb @@ -1,5 +1,6 @@ begin require_relative 'helper' + require_relative '../ruby/envutil' rescue LoadError end @@ -7,6 +8,8 @@ module Fiddle class TestHandle < TestCase include Fiddle + include Test::Unit::Assertions + def test_to_i handle = Fiddle::Handle.new(LIBC_SO) assert_kind_of Integer, handle.to_i @@ -185,5 +188,9 @@ module Fiddle Socket.gethostbyname("localhost") Fiddle.dlopen("/lib/libc.so.7").sym('strcpy') end if /freebsd/=~ RUBY_PLATFORM + + def test_no_memory_leak + assert_no_memory_leak(%w[-W0 -rfiddle.so], '', '100_000.times {Fiddle::Handle.allocate}; GC.start', limit: 1.2) + end end end if defined?(Fiddle) diff --git a/test/fiddle/test_pointer.rb b/test/fiddle/test_pointer.rb index 1d908f64d9..0d7d9a7c27 100644 --- a/test/fiddle/test_pointer.rb +++ b/test/fiddle/test_pointer.rb @@ -230,5 +230,9 @@ module Fiddle assert_raise(DLError) {nullpo[0]} assert_raise(DLError) {nullpo[0] = 1} end + + def test_no_memory_leak + assert_no_memory_leak(%w[-W0 -rfiddle.so], '', '100_000.times {Fiddle::Pointer.allocate}', limit: 1.2) + end end end if defined?(Fiddle) |