From 3707fd4941f4eed6c442180a0ae19d92e6d39b08 Mon Sep 17 00:00:00 2001 From: akr Date: Thu, 10 Sep 2009 12:22:59 +0000 Subject: [PATCH] * test/dl/test_cptr.rb (test_free=): test SEGV at first. [ruby-dev:39269] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24828 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ test/dl/test_cptr.rb | 15 +++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/ChangeLog b/ChangeLog index 3392ea7e97..c8abd65f81 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Thu Sep 10 21:22:01 2009 Tanaka Akira + + * test/dl/test_cptr.rb (test_free=): test SEGV at first. + [ruby-dev:39269] + Thu Sep 10 21:20:59 2009 Tanaka Akira * test/ruby/envutil.rb (assert_normal_exit): Don't use diff --git a/test/dl/test_cptr.rb b/test/dl/test_cptr.rb index 3ff811f6e3..07ad05ba25 100644 --- a/test/dl/test_cptr.rb +++ b/test/dl/test_cptr.rb @@ -1,4 +1,5 @@ require 'test_base' +require_relative '../ruby/envutil' module DL class TestCPtr < TestBase @@ -8,6 +9,20 @@ module DL end def test_free= + assert_normal_exit(<<-"End", '[ruby-dev:39269]') + require 'dl' + DL::LIBC_SO = #{DL::LIBC_SO.dump} + DL::LIBM_SO = #{DL::LIBM_SO.dump} + include DL + @libc = dlopen(LIBC_SO) + @libm = dlopen(LIBM_SO) + free = CFunc.new(@libc['free'], TYPE_VOID, 'free') + ptr = CPtr.malloc(4) + ptr.free = free + free.ptr + ptr.free.ptr + End + free = CFunc.new(@libc['free'], TYPE_VOID, 'free') ptr = CPtr.malloc(4) ptr.free = free