Граф коммитов

100 Коммитов

Автор SHA1 Сообщение Дата
ngoto a1a5c879f7 * test/dl/test_func.rb (test_name_with_block, test_bind, test_qsort1): call unbind to release the callback closure because maximum number of callbacks is limited to DL::MAX_CALLBACK (== 5) with pure DL without Fiddle.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38326 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-11 15:44:22 +00:00
ngoto 1fcde7c2e2 * ext/dl/lib/dl/func.rb (DL::Function#unbind, #bound?): suppress NoMethodError when Fiddle is available. [ruby-core:50756] [Bug #7543]
* test/dl/test_func.rb (test_bound*, test_unbind*): tests for the above.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38324 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-11 15:24:31 +00:00
ngoto 9920da5593 * ext/dl/lib/dl/func.rb (DL::Function#bind): When Fiddle is used,
@ptr should be updated. This fixes SEGV raised in DL::Function#call
  after calling DL::Function#bind. [Bug #7516] [ruby-dev:46708]
* test/dl/test_func.rb (test_bind): test for the above


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38211 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-05 13:24:19 +00:00
ngoto f1841f43eb * ext/dl/lib/dl/func.rb (DL::Function#initialize, DL::Function#bind):
ABI should be set by using CFunc#calltype even when Fiddle is used.
  When Fiddle is used and a block is given, name shoud not be ignored.
  [ruby-core:50562] [Bug #7514]
* ext/dl/lib/dl/import.rb (DL::Importer#bind_function): should respect
  abi and name when Fiddle is used.
* test/dl/test_func.rb (test_name_with_block): test for "name" method
  with giving a block.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38202 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-05 03:20:05 +00:00
naruse 9207474f04 suppress warnings: unused variables
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38091 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-30 19:10:12 +00:00
naruse 8539a917dd Use RUBYOPT to overwrite original RUBYOPT ENV
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38090 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-30 19:10:05 +00:00
kazu 8f9b451dd8 assert_in_out_err with block ignores test_stdout
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38078 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-30 17:14:24 +00:00
naruse d8da36dd22 Refix r38002: capture_subprocess_io also doesn't fork
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38018 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-30 01:29:57 +00:00
naruse b479ca0c98 Use capture_subprocess_io instead of capture_io. fix r38002
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38016 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-30 00:54:04 +00:00
naruse 40bae2f67c Run another process to avoid failure when objspace is already loaded
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38002 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-29 18:22:52 +00:00
nobu 304885cdff test/dl: no warnings
* test/dl/test_base.rb, test/dl/test_c_struct_entry.rb: deprecation
  warnings make no sense here.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37966 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-29 02:58:34 +00:00
tenderlove 0713f89944 * ext/fiddle/fiddle.c: adding alignment constants for compatibility
with DL.
* ext/fiddle/fiddle.h: ditto
* ext/fiddle/lib/fiddle/cparser.rb: importing the C parser for DL
  backwards compatibility.
* ext/fiddle/lib/fiddle/import.rb: importing the import DSL for DL
  backwards compatibility.
* ext/fiddle/lib/fiddle/pack.rb: importing structure pack for DL
  backwards compatibility.
* ext/fiddle/lib/fiddle/value.rb: ditto
* ext/fiddle/lib/fiddle/struct.rb: importing struct DSL for DL backwards
  compatibility.
* test/dl/test_c_struct_entry.rb: importing tests
* test/dl/test_c_union_entity.rb: ditto
* test/dl/test_cparser.rb: ditto
* test/dl/test_import.rb: ditto
* test/fiddle/test_c_struct_entry.rb: ditto
* test/fiddle/test_c_union_entity.rb: ditto
* test/fiddle/test_cparser.rb: ditto
* test/fiddle/test_import.rb: ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37914 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-28 00:02:49 +00:00
tenderlove c1fb6a82dc * ext/fiddle/handle.c: Make Fiddle independent of DL, copy DL::Handle
to Fiddle::Handle.
* ext/fiddle/pointer.c: Make Fiddle independent of DL, copy
  DL::Pointer to Fiddle::Pointer.
* test/fiddle/test_func.rb: relevent tests
* test/fiddle/test_handle.rb: ditto
* test/fiddle/test_pointer.rb: ditto
* ext/dl/lib/dl/struct.rb: use Fiddle::Pointer if available
* ext/fiddle/extconf.rb: check for dlfcn.h
* ext/fiddle/fiddle.c: add constants for sizeof() things
* ext/fiddle/fiddle.h: include dlfcn.h
* ext/fiddle/function.c: expose a C function for creating new
  Fiddle::Function objects.
* ext/fiddle/lib/fiddle.rb: include constants for dl backwards compat
* ext/fiddle/lib/fiddle/function.rb: read the pointer from the
  function for dl backwards compat.
* test/dl/test_callback.rb: check the addresses of the pointers rather
  than their types.
* test/fiddle/helper.rb: remove dependency on dl
* test/fiddle/test_closure.rb: ditto
* test/fiddle/test_fiddle.rb: ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37907 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-27 19:54:50 +00:00
tenderlove 1eac1cb21e reverting r37881
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37891 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-27 05:59:34 +00:00
tenderlove ab2a7a9346 * ext/fiddle/handle.c: Make Fiddle independent of DL, copy DL::Handle
to Fiddle::Handle.
* ext/fiddle/pointer.c: Make Fiddle independent of DL, copy
  DL::Pointer to Fiddle::Pointer.
* test/fiddle/test_func.rb: relevent tests
* test/fiddle/test_handle.rb: ditto
* test/fiddle/test_pointer.rb: ditto
* ext/dl/lib/dl/struct.rb: use Fiddle::Pointer if available
* ext/fiddle/extconf.rb: check for dlfcn.h
* ext/fiddle/fiddle.c: add constants for sizeof() things
* ext/fiddle/fiddle.h: include dlfcn.h
* ext/fiddle/function.c: expose a C function for creating new
  Fiddle::Function objects.
* ext/fiddle/lib/fiddle.rb: include constants for dl backwards compat
* ext/fiddle/lib/fiddle/function.rb: read the pointer from the
  function for dl backwards compat.
* test/dl/test_callback.rb: check the addresses of the pointers rather
  than their types.
* test/fiddle/helper.rb: remove dependency on dl
* test/fiddle/test_closure.rb: ditto
* test/fiddle/test_fiddle.rb: ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37881 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-27 01:38:41 +00:00
naruse 58ef0f06c6 * ruby.c (load_file_internal): set default source encoding as
UTF-8 instead of US-ASCII. [ruby-core:46021] [Feature #6679]

* parse.y (parser_initialize): set default parser encoding as
  UTF-8 instead of US-ASCII.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37485 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-06 00:49:57 +00:00
tenderlove 4b1df2ae45 * ext/dl/lib/dl/struct.rb: fix strange require order. [ruby-dev:45702]
* ext/dl/lib/dl/value.rb: ditto

* test/dl/test_c_struct_entry.rb: remove strange require order from
  tests.

* test/dl/test_c_union_entity.rb: ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37391 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-30 17:54:34 +00:00
ngoto bff44ef4cd * test/dl/test_func.rb (test_qsort1, test_qsort2): use TYPE_SIZE_T
for size_t variables. [ruby-dev:45733] [Bug #6584]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36066 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-13 13:52:04 +00:00
usa 5e1e5d04ee * test/dl/test_c_{struct_entry,union_entity}.rb: sorry, typos.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35934 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-06 00:46:12 +00:00
usa 00e4c2e362 * test/dl/test_c_{struct,union}_entity.rb: broken require.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35901 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-04 04:10:44 +00:00
drbrain fe962cde15 * ext/dl/lib/dl/struct.rb (DL::CStructEntity#set_ctypes): Refactored
#set_ctypes using newer ruby features to simplify its implementation.
* test/dl/test_c_struct_entry.rb (class DL):  Test to verify
  refactoring.

Reviewed by Aaron Patterson.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35857 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-31 22:07:09 +00:00
drbrain 711c067eb5 * test/dl/test_c_struct_entry.rb: Removed duplicated test
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35851 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-31 00:37:45 +00:00
drbrain 40cf3e0cca * ext/dl/lib/dl/struct.rb (DL::CStructEntity::size): Refactored ::size
to remove unused variables and simplify using newer ruby features.
* test/dl/test_c_struct_entry.rb:  Test to validate refactoring

Reviewed by Aaron Patterson


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35850 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-31 00:27:34 +00:00
drbrain 0381ab0769 * ext/dl/lib/dl/struct.rb (DL::CUnionEntity#set_ctypes): Refactored
#set_types to reuse DL::CUnionEntity::size
* test/dl/test_c_union_entity.rb:  Added test

Reviewed by Aaron Paterson


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35849 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-30 23:41:07 +00:00
drbrain f1cb6ea08f * ext/dl/lib/dl/struct.rb (DL::CUnionEntity::size): Fixed ::size to
return the size of the union.
* test/dl/test_c_union_entity.rb:  Test for DL::CUnionEntity::size

Reviewed by Aaron Patterson


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35848 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-30 23:20:29 +00:00
nobu b4288080e7 * ext/dl/dl.c (Init_dl): support intrinsic types, size_t, ptrdiff_t
and intptr_t.  [ruby-core:42460][Feature #5992]
* ext/fiddle/fiddle.c (Init_fiddle): ditto.
* ext/dl/lib/dl/cparser.rb (DL::CParser#parse_ctype): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34800 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-02-25 05:47:16 +00:00
nagachika 527be1b25a * test/dl/test_callback.rb (test_callback_with_string): prevents
temporary string from GC.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33127 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-30 13:39:31 +00:00
ngoto 321be14fe7 * test/fiddle/helper.rb (libc_so, libm_so): Solaris support added.
* test/dl/test_base.rb (libc_so, libm_so): on Solaris, remove libc
  and libm version numbers for detecting default libc and libm.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32892 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-09 03:36:18 +00:00
nobu eda13c7ee2 * ext/dl/cptr.c (rb_dlptr_aref, rb_dlptr_aset): check NULL pointer
dereference.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32720 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-28 03:32:52 +00:00
nobu 9f3914aba6 * ext/dl/cfunc.c (dlcfunc_mark), ext/dl/cptr.c (dlptr_mark):
workaround to mark wrapped object.  this is not a true fix,
  because [Bug #4929] is caused by the interface design of DL.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32712 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-27 17:15:09 +00:00
naruse 4aa9e1ace0 Add test for r32586.
FreeBSD (at least 7.2 to 7.2) calls nsdispatch(3) when it calls
getaddrinfo(3). And nsdispatch(3) doesn't call dlerror(3) even if
it calls _nss_cache_cycle_prevention_function with dlsym(3).
So our DL::Handle#sym must call dlerror(3) before call dlsym.
In general uses of dlerror(3) should call it before use it.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32590 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-20 15:20:14 +00:00
nobu 3a47cf3395 * remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31573 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-15 11:55:52 +00:00
usa e269a71eeb * test/dl/test_base.rb (DL::LIBC_SO): its always msvc*.dll on
mswin/mingw.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31371 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-04-28 06:34:01 +00:00
usa d815916071 * test/ruby/test_process.rb (TestProcess#test_no_curdir): skip silently on
Windows, because this tests a platform specific feature and it'll never be
  supported on ruby on Windows.

* test/ruby/test_dir_m17n.rb (TestDir_M17N#test_filename_extutf8_invalid,
  TestDir_M17N#test_filename_as_bytes_extutf8): ditto.

* test/open-uri/test_open-uri.rb
  (TestOpenURI#test_find_proxy_case_sensitive_env): ditto.

* test/dl/test_handle.rb (DL::TestHandle#test_NEXT,
  DL::TestHandle#test_DEFAULT): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31174 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-03-25 02:50:17 +00:00
nobu 59064a75b8 * test/dl/test_dl2.rb (TestDL#test_sin): math functions do not
work on x86_64 due to the design of DL2.
* test/dl/test_func.rb (DL::TestFunc#test_{sinf,sin): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30733 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-01-30 07:15:23 +00:00
kanemoto 6ef6cbc4f6 Creating dummy library for dl/fiddle tests on AIX.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29101 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-08-26 01:16:53 +00:00
tenderlove bb7b62af8d forgot to commit the assert_match()
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28553 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-07-05 23:39:51 +00:00
tenderlove ff10d93563 * ext/dl/lib/dl/import.rb (handler): add a more helpful error message
when calling import_symbol or import_function without calling
  dlload.  Thanks nobu! [ruby-core:30996]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28552 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-07-05 23:38:35 +00:00
tarui db4a0d42dd * 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/trunk@28440 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-06-25 19:43:15 +00:00
tenderlove c052958912 * test/dl/test_cfunc.rb: test for r28156
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28157 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-06-04 02:24:32 +00:00
tenderlove 230ca5ffe5 * 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/trunk@28129 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-06-02 16:02:48 +00:00
usa 597d60f792 * 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/trunk@28125 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-06-02 07:49:00 +00:00
naruse 7eb7f063a4 Fix test to follow the behavior of NetBSD's dlsym.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27891 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-19 10:15:38 +00:00
usa ec21e8438c * test/dl/test_func.rb (test_sinf): sinf() doesn't exist in the standard of C.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27888 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-19 09:07:27 +00:00
tenderlove 1b979ea721 * 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/trunk@27695 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-09 01:57:54 +00:00
yugui ffde073b0c * test/dl/test_base.rb (libc_so, libm_so): supports solaris.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27681 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-08 16:05:27 +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