Commit graph

62 commits

Author SHA1 Message Date
tarui
6a05e8c566 merge from trunk (r28440)
* ext/dl/lib/dl/func.rb (call): don't overwrite original arguments
	  to defend from GC.

	* test/dl/test_func.rb (test_string): add test for above.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_2@28468 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-06-28 16:45:35 +00:00
yugui
234358faf8 merges r28157 from trunk into ruby_1_9_2.
--
* test/dl/test_cfunc.rb: test for r28156

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_2@28274 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-06-11 04:21:01 +00:00
yugui
2de959db7b merges r28129 from trunk into ruby_1_9_2.
--
* ext/dl/lib/dl/cparser.rb (parse_ctype): add backwards compatibility
  by supporting "uint" types in the c parser. [ruby-core:29750]
* test/dl/test_cparser.rb: adding a test for "uint" changes.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_2@28271 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-06-11 04:20:35 +00:00
usa
9e27c24d35 merge from trunk (r28125)
* test/dl/test_cfunc.rb (test_last_error): CFunc.last_error is thread local
  variable.  So, if another test calls CFunc#call, it's set.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_2@28126 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-06-02 10:11:30 +00:00
usa
c2ff169664 merge from trunk (r27887-r27889)
* test/win32ole/test_folderitem2_invokeverb.rb (test_invokeverb): should use
  assert_equal instead of assert in such cases.

* test/dl/test_func.rb (test_sinf): sinf() doesn't exist in the standard of C.

* test/csv/test_interface.rb (test_write_hash): may need to set binary mode
  when converter is specified.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_2@27901 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-19 13:47:24 +00:00
naruse
42ad60bc61 merge revision(s) 27891:
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_2@27899 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-19 12:20:38 +00:00
yugui
af712edd5f merges r27695 from trunk into ruby_1_9_2.
--
* test/dl/test_callback.rb: fixing valgrind errors.  Ruby string may be
  GC'd before the callback returns.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_2@27700 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-09 03:10:29 +00:00
yugui
0636a4be62 * test/dl/test_base.rb (libc_so, libm_so): supports solaris.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_2@27679 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-08 16:00:23 +00:00
mame
f991d20910 * test/dl/test_base.rb: add kfreebsd support. based on a patch from
Petr Salinger in [ruby-core:29769].
  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=560293

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27463 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-23 15:38:11 +00:00
wanabe
b7ed43e941 * test/dl/test_handle.rb: skip some tests on mswin/mingw.
because RTLD_DEFAULT and RTLD_NEXT don't work well on windows.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26989 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-03-20 09:47:07 +00:00
wanabe
7fde261963 * test/dl/test_cfunc.rb (test_to_s): a result of sprintf("%x", ptr)
may contain 0.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26984 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-03-19 16:39:16 +00:00
wanabe
e40c43a1bf * test/dl/test_dl2.rb (DL::TestDL#ptr2num): add for LLP64.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26982 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-03-19 16:18:05 +00:00
wanabe
c28b2b9be2 * test/dl/test_dl2.rb: require 'dl/func' to refer DL::Function.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26980 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-03-19 16:16:22 +00:00
mame
bbcb186ae6 * test/dl/test_method.rb: delete a residual test for dl on libffi.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26858 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-03-09 11:52:02 +00:00
muraken
1c0dfeef41 * test/dl/test_closure.rb: forget to revert at r26764.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26795 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-03-02 05:48:05 +00:00
naruse
676cf9b527 * test/dl/test_method.rb: sinf(3) is in libm.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26690 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-02-17 00:19:29 +00:00
nobu
da2497745e * test/dl/test_{base,handle}.rb: use more verbose assertions.
* test/dl/test_import.rb (DL::LIBC::BoundQsortCallback): renamed
  to get rid of overwriting warning.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26680 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-02-16 10:03:02 +00:00
tenderlove
8f8947a260 * ext/dl/method.c: Adding DL::Method as a superclass for DL::Function
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26677 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-02-16 02:05:46 +00:00
naruse
bd0a3dfd65 * test/dl/test_handle.rb (test_NEXT): fix for BSD.
Linux and Darwin's RTLD_NEXT searchs second occurrence of the function.
But FreeBSD and NetBSD's RTLD_NEXT searchs in libraries loaded after dl.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26613 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-02-07 10:29:39 +00:00
tenderlove
b386fe21ec Wed Feb 3 10:12:09 2010 Aaron Patterson <tenderlove@ruby-lang.org>
* ext/dl/function.c: DL::Function now uses libffi

        * ext/dl/cfunc.c (rb_dl_set_last_error): set to non static so errors
          can be exposed.

        * ext/dl/closure.c: DL::Closure will now be used in place of
          ext/dl/callback/*.

        * ext/dl/dl.c: legacy callbacks removed in favor of libffi

        * ext/dl/dl_converions.(c,h): used for converting ruby types to FFI
          types.

        * ext/dl/callback/*: replaced by libffi callbacks.

        * ext/dl/lib/dl/callback.rb: Converting internal callbacks to use
          DL::Closure

        * ext/dl/lib/dl/closure.rb: Ruby parts of the new DL::Closure object

        * ext/dl/lib/dl/import.rb: More conversion to use DL::Closure object

        * ext/dl/lib/dl/value.rb (ruby2ffi): adding private method for
          DL::CPtr to ffi value conversion.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26545 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-02-03 01:23:48 +00:00
akr
48d402db88 use require_relative.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26542 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-02-02 13:58:56 +00:00
tenderlove
753de85e40 * test/dl/test_callback.rb testing callback removal
* test/dl/test_func.rb testing function names, to_i

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26037 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-12-07 00:49:09 +00:00
tenderlove
6a1aebaabf * ext/dl/cptr.c (to_int): DL::CPtr supports to_int
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25996 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-12-04 23:21:01 +00:00
tenderlove
d5e1b514f9 * test/dl/test_callback.rb (**): using DL::Function to test callbacks
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25986 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-12-04 00:15:26 +00:00
tenderlove
f28a0b6b98 * test/dl/test_callback.rb (**): testing return values of dl callbacks
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25978 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-12-03 03:04:27 +00:00
tenderlove
9a9cc65035 * test/dl/test_cptr.rb (**): using ruby_xfree instead of libc's free
* test/dl/test_func.rb (test_strdod): strtod needs a char ** argument

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25747 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-13 07:19:59 +00:00
tenderlove
17ccd5d013 * ext/dl/cptr.c (rb_dlptr_s_to_ptr): when wrapping a pointer it should
keep a reference to the object it's wrapping
* test/dl/test_func.rb use standard test methods

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25742 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-12 22:41:07 +00:00
tenderlove
f0e0b77864 * test/dl/test_func.rb (test_strtod): strtod test should not rely on
memory layout

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25711 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-10 22:51:24 +00:00
tenderlove
912c42bebf * test/dl/test_callback.rb (**) adding a callback test file
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25687 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-08 00:21:50 +00:00
tenderlove
5de564634d * ext/dl/cfunc.c (**) updating documentation
* test/dl/test_cfunc.rb (test_ptr=, test_ptr) testing the pointer
  accessor methods on CFunc

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25686 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-08 00:21:41 +00:00
tenderlove
a56bd8c31a * ext/dl/cptr.c (rb_dlptr_inspect): making inspect consistent across
platforms
* test/dl/test_cptr.rb (test_inspect): testing inspect

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25684 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-07 21:37:27 +00:00
tenderlove
35da6fdcf1 * ext/dl/cfunc.c (rb_dlcfunc_initialize): cleaning up C macros
* ext/dl/cfunc.c (**): adding documentation
* test/dl/test_cfunc.rb (test_set_calltype) testing calltype

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25679 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-06 22:50:40 +00:00
tenderlove
bc52ea0fde * ext/dl/cptr.c (rb_dlptr_s_malloc, rb_dlptr_initialize): adding
documentation
* test/dl/test_cptr.rb (**): testing that malloc works when passed free
  functions

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25678 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-06 22:50:05 +00:00
tenderlove
5296367cf4 * 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
2009-11-06 18:29:31 +00:00
tenderlove
c2d7621d8d * 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: svn+ssh://ci.ruby-lang.org/ruby/trunk@25675 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-06 18:02:30 +00:00
tenderlove
02d55ac989 * test/dl/test_cptr.rb (test_to_ptr*): testing DL::CPtr#to_ptr
* ext/dl/cptr.c (rb_dlptr_free_set, rb_dlptr_free_get,
  rb_dlptr_s_to_ptr): adding documentation, fixing indentation

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25636 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-03 20:28:20 +00:00
tenderlove
c30e32d075 * ext/dl/cptr.c (rb_dlptr_eql, rb_dlptr_cmp): DL::CPtr#== and DL::CPtr#<=>
should not raise an exception when compared to a different object.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25634 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-03 17:12:46 +00:00
tenderlove
a9e662ac7a * ext/dl/cptr.c (rb_dlptr_ptr, rb_dlptr_ref) adding documentation
* test/dl/test_cptr.rb (test_ref_ptr) testing CPtr#ref and CPtr#ptr

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25608 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-01 01:47:08 +00:00
tenderlove
4b76900a55 * ext/dl/cptr.c (rb_dlptr_to_value) added documentation
* test/dl/test_cptr.rb (test_to_value) testing DL::CPtr#to_value

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25607 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-01 01:46:56 +00:00
tenderlove
6cf6d8556c * ext/dl/cptr.c (rb_dlptr_size) splitting function to reduce complexity
* ext/dl/cptr.c (rb_dlptr_null_p, rb_dlptr_aref, rb_dlptr_aset) adding
  documentation
* ext/dl/dl.c (rb_dl_free) adding documentation
* test/dl/test_cptr.rb (test_null?, test_size, test_size=,
  test_aref_aset) Improving test coverage
* test/dl/test_dl2.rb (test_free_secure) improving test coverage

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25606 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-01 01:46:44 +00:00
tenderlove
5f3d0f5233 * test/dl/test_dl2.rb (**) testing malloc and realloc
* ext/dl/dl.c (**) adding documentation

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25605 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-01 01:46:27 +00:00
tenderlove
3f6f9f87ca * ext/dl/handle.c (**) adding documentation
* test/dl/test_handle.rb (test_NEXT) testing the NEXT handle

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25463 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-25 00:11:56 +00:00
tenderlove
1578edbafc * ext/dl/handle.c (rb_dlhandle_close_enabled_p) testing that handles can
be enabled and disabled for closure on GC.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25462 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-25 00:11:41 +00:00
tenderlove
159e6439c0 * ext/dl/handle.c (**) adding documentation
* test/dl/test_handle.rb (**) testing to_i and initialize

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25461 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-25 00:11:29 +00:00
tenderlove
60f86b2edb * ext/dl/handle.c (rb_dlhandle_sym) refactoring rb_secure(2)
* test/dl/test_handle.rb (**) testing sym behavior

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25460 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-25 00:11:15 +00:00
tenderlove
c30de1e38e * ext/dl/handle.c (rb_dlhandle_sym) removing unnecessary code. Adding
documentation and tests for current functionality.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25459 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-25 00:11:02 +00:00
tenderlove
a631b5df36 * ext/dl/handle.c (rb_dlhandle_close) check return value of dlclose()
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25458 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-24 21:56:50 +00:00
tenderlove
5ee251bdad * ext/ext/dl/handle.c (rb_dlhandle_initialize) added rb_secure(2)
[ruby-core:25762]
* ext/dl/dl.c (rb_dl_dlopen) removed rb_secure(2)

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25448 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-23 16:44:41 +00:00
akr
3ce642f5af * test/dl: use require_relative to require test_base.rb.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24833 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-10 17:14:53 +00:00
akr
3707fd4941 * test/dl/test_cptr.rb (test_free=): test SEGV at first.
[ruby-dev:39269]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24828 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-10 12:22:59 +00:00