1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* ext/dl/cptr.c (rb_dlptr_to_str, rb_dlptr_to_s) adding documentation

* test/dl/test_cptr.rb (test_to_str, test_to_s) testing the
  stringification of DL::Ptr

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25677 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
tenderlove 2009-11-06 18:29:31 +00:00
parent c970682f02
commit 5296367cf4
2 changed files with 51 additions and 4 deletions

View file

@ -188,7 +188,12 @@ rb_dlptr_s_malloc(int argc, VALUE argv[], VALUE klass)
return obj;
}
VALUE
/*
* call-seq: to_i
*
* Returns the integer memory location of this DL::CPtr.
*/
static VALUE
rb_dlptr_to_i(VALUE self)
{
struct ptr_data *data;
@ -202,7 +207,7 @@ rb_dlptr_to_i(VALUE self)
*
* Cast this CPtr to a ruby object.
*/
VALUE
static VALUE
rb_dlptr_to_value(VALUE self)
{
struct ptr_data *data;
@ -285,7 +290,17 @@ rb_dlptr_free_get(VALUE self)
return rb_dlcfunc_new(pdata->free, DLTYPE_VOID, "free<anonymous>", CFUNC_CDECL);
}
VALUE
/*
* call-seq:
*
* ptr.to_s => string
* ptr.to_s(len) => string
*
* Returns the pointer contents as a string. When called with no arguments,
* this method will return the contents until the first NULL byte. When
* called with +len+, a string of +len+ bytes will be returned.
*/
static VALUE
rb_dlptr_to_s(int argc, VALUE argv[], VALUE self)
{
struct ptr_data *data;
@ -308,7 +323,17 @@ rb_dlptr_to_s(int argc, VALUE argv[], VALUE self)
return val;
}
VALUE
/*
* call-seq:
*
* ptr.to_str => string
* ptr.to_str(len) => string
*
* Returns the pointer contents as a string. When called with no arguments,
* this method will return the contents with the length of this pointer's
* +size+. When called with +len+, a string of +len+ bytes will be returned.
*/
static VALUE
rb_dlptr_to_str(int argc, VALUE argv[], VALUE self)
{
struct ptr_data *data;

View file

@ -3,6 +3,28 @@ require_relative '../ruby/envutil'
module DL
class TestCPtr < TestBase
def test_to_str
str = "hello world"
ptr = CPtr[str]
assert_equal 3, ptr.to_str(3).length
assert_equal str, ptr.to_str
ptr[5] = 0
assert_equal "hello\0world", ptr.to_str
end
def test_to_s
str = "hello world"
ptr = CPtr[str]
assert_equal 3, ptr.to_s(3).length
assert_equal str, ptr.to_s
ptr[5] = 0
assert_equal 'hello', ptr.to_s
end
def test_minus
str = "hello world"
ptr = CPtr[str]