summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortenderlove <tenderlove@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-11-08 00:21:50 +0000
committertenderlove <tenderlove@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-11-08 00:21:50 +0000
commitf32fbbc179c61efed74a602f28ee9bccea80f2ac (patch)
tree1fa72fbc083d45eaea2c8f26c52dc21f13384086
parent466040cd439fb55cdf285dcc76f89645144f31f3 (diff)
downloadruby-f32fbbc179c61efed74a602f28ee9bccea80f2ac.tar.gz
ruby-f32fbbc179c61efed74a602f28ee9bccea80f2ac.tar.xz
ruby-f32fbbc179c61efed74a602f28ee9bccea80f2ac.zip
* test/dl/test_callback.rb (**) adding a callback test file
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@25687 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--test/dl/test_callback.rb32
1 files changed, 32 insertions, 0 deletions
diff --git a/test/dl/test_callback.rb b/test/dl/test_callback.rb
new file mode 100644
index 000000000..f3dd665fe
--- /dev/null
+++ b/test/dl/test_callback.rb
@@ -0,0 +1,32 @@
+require_relative 'test_base'
+require_relative '../ruby/envutil'
+
+module DL
+ class TestCallback < TestBase
+ include DL
+
+ def test_callback_with_string
+ called_with = nil
+ addr = set_callback(TYPE_VOID, 1) do |str|
+ called_with = dlunwrap(str)
+ end
+ func = CFunc.new(addr, TYPE_VOID, 'test')
+
+ func.call([dlwrap('foo')])
+ assert_equal 'foo', called_with
+ end
+
+ def test_call_callback
+ called = false
+
+ addr = set_callback(TYPE_VOID, 0) do
+ called = true
+ end
+
+ func = CFunc.new(addr, TYPE_VOID, 'test')
+ func.call([])
+
+ assert called, 'function should be called'
+ end
+ end
+end