From 4d5af95020d069543862acc39dd29fb9c46ea4b6 Mon Sep 17 00:00:00 2001 From: yugui Date: Sat, 30 Jan 2010 12:52:57 +0000 Subject: merges tests from trunk@25460 into ruby_1_9_1. -- * ext/dl/handle.c (rb_dlhandle_sym) refactoring rb_secure(2) * test/dl/test_handle.rb (**) testing sym behavior git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@26504 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/dl/test_handle.rb | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) (limited to 'test') diff --git a/test/dl/test_handle.rb b/test/dl/test_handle.rb index d46e16c084..a9d12eab4f 100644 --- a/test/dl/test_handle.rb +++ b/test/dl/test_handle.rb @@ -2,6 +2,52 @@ require 'test_base' module DL class TestHandle < TestBase + def test_sym_closed_handle + handle = DL::Handle.new(LIBC_SO) + handle.close + assert_raises(DL::DLError) { handle.sym("calloc") } + assert_raises(DL::DLError) { handle["calloc"] } + end + + def test_sym_unknown + handle = DL::Handle.new(LIBC_SO) + assert_raises(DL::DLError) { handle.sym('fooo') } + assert_raises(DL::DLError) { handle['fooo'] } + end + + def test_sym_with_bad_args + handle = DL::Handle.new(LIBC_SO) + assert_raises(TypeError) { handle.sym(nil) } + assert_raises(TypeError) { handle[nil] } + end + + def test_sym_secure + assert_raises(SecurityError) do + Thread.new do + $SAFE = 2 + handle = DL::Handle.new(LIBC_SO) + handle.sym('calloc') + end.join + end + end + + def test_sym + handle = DL::Handle.new(LIBC_SO) + assert handle.sym('calloc') + assert handle['calloc'] + end + + def test_handle_close + handle = DL::Handle.new(LIBC_SO) + assert_equal 0, handle.close + end + + def test_handle_close_twice + handle = DL::Handle.new(LIBC_SO) + handle.close + handle.close rescue DL::DLError + end + def test_dlopen_returns_handle assert_instance_of DL::Handle, dlopen(LIBC_SO) end -- cgit v1.2.3