summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authortenderlove <tenderlove@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-11-06 18:02:30 +0000
committertenderlove <tenderlove@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-11-06 18:02:30 +0000
commit0601d00f81d0b40ec227552128edb586a1a8aa2b (patch)
tree2fcd356477cdc2d12af29f099024d643673082d3 /test
parent542e9707eff07c2cb3809f4e3090b46bcfc293a3 (diff)
downloadruby-0601d00f81d0b40ec227552128edb586a1a8aa2b.tar.gz
ruby-0601d00f81d0b40ec227552128edb586a1a8aa2b.tar.xz
ruby-0601d00f81d0b40ec227552128edb586a1a8aa2b.zip
* ext/dl/cptr.c (rb_dlptr_inspect, rb_dlptr_plus, rb_dlptr_minus)
documenting +, -, inspect * text/dl/test_cptr.rb (test_minus, test_plus, test_inspect) testing minus, plus, and inspect git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@25675 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r--test/dl/test_cptr.rb22
1 files changed, 22 insertions, 0 deletions
diff --git a/test/dl/test_cptr.rb b/test/dl/test_cptr.rb
index 3c4b5e686..43605f84c 100644
--- a/test/dl/test_cptr.rb
+++ b/test/dl/test_cptr.rb
@@ -3,6 +3,28 @@ require_relative '../ruby/envutil'
module DL
class TestCPtr < TestBase
+ def test_minus
+ str = "hello world"
+ ptr = CPtr[str]
+ assert_equal ptr.to_s, (ptr + 3 - 3).to_s
+ end
+
+ # TODO: what if the pointer size is 0? raise an exception? do we care?
+ def test_plus
+ str = "hello world"
+ ptr = CPtr[str]
+ new_str = ptr + 3
+ assert_equal 'lo world', new_str.to_s
+ end
+
+ def test_inspect
+ ptr = CPtr.new(0)
+ inspect = ptr.inspect
+ assert_match(/size=#{ptr.size}/, inspect)
+ assert_match(/free=#{ptr.free}/, inspect)
+ assert_match(/ptr=#{ptr.to_i}/, inspect)
+ end
+
def test_to_ptr_string
str = "hello world"
ptr = CPtr[str]