Hi,
I''ve been working on the FFI version of win32-api again and
I''ve got the
basic test down to 2 errors using JRuby 1.3.1.
You can checkout the latest win32-api and look at lib/ffi/win32/api.rb:
c:\Users\djberge\workspace\win32-api>jake test
(in C:/Users/djberge/workspace/win32-api)
c:/jruby/bin/../bin/jruby.bat -w -I"lib;lib/ffi"
"C:/jruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake/rake_test_loader.r
b" "test/test_win32_api.rb"
Loaded suite
C:/jruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake/rake_test_loader
Started
.FF..............
Finished in 1.386 seconds.
  1) Failure:
test_call_expected_failures(TC_Win32_API) [test/test_win32_api.rb:114]:
<TypeError> exception expected but was
Class: <RangeError>
Message: <"Value test is not an integer">
---Backtrace---
test/test_win32_api.rb:114:in `test_call_expected_failures''
test/test_win32_api.rb:114:in `test_call_expected_failures''
---------------
  2) Failure:
test_call_with_void(TC_Win32_API) [test/test_win32_api.rb:41]:
Exception raised:
Class: <ArgumentError>
Message: <"wrong number of arguments(1 for 0)">
---Backtrace---
test/test_win32_api.rb:41:in `test_call_with_void''
test/test_win32_api.rb:41:in `test_call_with_void''
---------------
17 tests, 41 assertions, 2 failures, 0 errors, 0 pendings, 0 omissions, 0
notifications
The first failure is coming from this:
assert_raise(TypeError){ @gcd.call(''test'', @buf) }
Here I''m passing a string ''test'' instead of a long.
This may be an issue
with FFI itself, so I''m not sure if we can fix it.
The second failure is coming from this:
      
assert_nothing_raised{ @gle.call(nil) }
Here I''m passing an explicit nil for a void parameter. Again, maybe FFI
simply doesn''t allow this.
Regards,
Dan