aboutsummaryrefslogtreecommitdiffstats
path: root/test
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
commit912c42bebf80601377dcb9c2f8036445dbebe203 (patch)
tree1fa72fbc083d45eaea2c8f26c52dc21f13384086 /test
parent5de564634df7b97c4004b152f40008938c638dcc (diff)
downloadruby-912c42bebf80601377dcb9c2f8036445dbebe203.tar.gz
* test/dl/test_callback.rb (**) adding a callback test file
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25687 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-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 0000000000..f3dd665feb
--- /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