Sha256: 352ae5f966596672e45ec6ce2b73666f7c83d650ea720ad84e41470d8cdc8a69

Contents?: true

Size: 885 Bytes

Versions: 7

Compression:

Stored size: 885 Bytes

Contents

require 'test_helper'

describe "properly handles and wraps function pointer arguments" do

  before(:all) do
    Extension.new "function_pointers" do |e|
      e.sources full_dir("headers/function_pointers.h")
      node = e.namespace "function_pointers"
    end

    require 'function_pointers'
  end

  specify "no arguments, no return" do
    proc_called = false

    set_callback do
      proc_called = true
    end

    call_callback

    proc_called.should be_true
  end

  specify "arguments, no return" do
    proc_arg = nil

    set_callback_with_args do |i|
      proc_arg = i
    end

    call_callback_with_args(10)

    proc_arg.should == 10
  end

  specify "arguments and return" do
    proc_arg = nil
    set_callback_returns do |i|
      proc_arg = i
      i * 10
    end

    ret = call_callback_returns(8)

    proc_arg.should == 8
    ret.should == 80
  end

end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
rbplusplus-1.3.0 test/function_pointer_test.rb
rbplusplus-1.2.1 test/function_pointer_test.rb
rbplusplus-1.2.0 test/function_pointer_test.rb
rbplusplus-1.1.0 test/function_pointer_test.rb
rbplusplus-1.0.3 test/function_pointer_test.rb
rbplusplus-1.0.1 test/function_pointer_test.rb
rbplusplus-1.0 test/function_pointer_test.rb