Sha256: de7fb8f2c0eef300d9f8b5ced6350e4a8c792e19a2b91f257f0859f736546424

Contents?: true

Size: 965 Bytes

Versions: 10

Compression:

Stored size: 965 Bytes

Contents

require File.expand_path(File.join(File.dirname(__FILE__), "spec_helper"))

describe "functions returning :strptr" do
  it "can attach function with :strptr return type" do
    lambda do
      m = Module.new do
        extend FFI::Library
        ffi_lib FFI::Library::LIBC
        attach_function :strdup, [ :string ], :strptr
      end
    end.should_not raise_error
  end

  module StrPtr
    extend FFI::Library
    ffi_lib FFI::Library::LIBC
    attach_function :strdup, [ :string ], :strptr
    attach_function :free, [ :pointer ], :void
  end

  it "should return [ String, Pointer ]" do
    result = StrPtr.strdup("test")
    result[0].is_a?(String).should be_true
    result[1].is_a?(FFI::Pointer).should be_true
  end

  it "should return the correct value" do
    result = StrPtr.strdup("test")
    result[0].should == "test"
  end

  it "should return non-NULL pointer" do
    result = StrPtr.strdup("test")
    result[1].null?.should be_false
  end
end

Version data entries

10 entries across 10 versions & 2 rubygems

Version Path
ffi-1.0.4-x86-mingw32 spec/ffi/strptr_spec.rb
ffi-1.0.4 spec/ffi/strptr_spec.rb
ffi-1.0.3-x86-mingw32 spec/ffi/strptr_spec.rb
ffi-1.0.3 spec/ffi/strptr_spec.rb
ffi-1.0.2-x86-mingw32 spec/ffi/strptr_spec.rb
ffi-1.0.2 spec/ffi/strptr_spec.rb
ffi-1.0.1-x86-mingw32 spec/ffi/strptr_spec.rb
ffi-1.0.1 spec/ffi/strptr_spec.rb
ffi-1.0.0 spec/ffi/strptr_spec.rb
ffi-aitrus-0.9.0.beta spec/ffi/strptr_spec.rb