aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-02-25 05:47:16 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-02-25 05:47:16 +0000
commitb4288080e7d025729f88479c44ed054f65b30f60 (patch)
tree2f77c1a499dd3a53e17e22f99de797f6a5e9afb9 /test
parentd9adb03dd902c1cf7e5fadc8320dccec0ef73139 (diff)
downloadruby-b4288080e7d025729f88479c44ed054f65b30f60.tar.gz
* 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
Diffstat (limited to 'test')
-rw-r--r--test/dl/test_cparser.rb20
-rw-r--r--test/dl/test_dl2.rb12
-rw-r--r--test/fiddle/test_fiddle.rb7
-rw-r--r--test/ruby/memory_status.rb6
4 files changed, 39 insertions, 6 deletions
diff --git a/test/dl/test_cparser.rb b/test/dl/test_cparser.rb
index 3be727a759..cea9ac73b0 100644
--- a/test/dl/test_cparser.rb
+++ b/test/dl/test_cparser.rb
@@ -9,5 +9,25 @@ module DL
def test_uint_ctype
assert_equal(-DL::TYPE_INT, parse_ctype('uint'))
end
+
+ def test_size_t_ctype
+ assert_equal(DL::TYPE_SIZE_T, parse_ctype("size_t"))
+ end
+
+ def test_ssize_t_ctype
+ assert_equal(DL::TYPE_SSIZE_T, parse_ctype("ssize_t"))
+ end
+
+ def test_ptrdiff_t_ctype
+ assert_equal(DL::TYPE_PTRDIFF_T, parse_ctype("ptrdiff_t"))
+ end
+
+ def test_intptr_t_ctype
+ assert_equal(DL::TYPE_INTPTR_T, parse_ctype("intptr_t"))
+ end
+
+ def test_uintptr_t_ctype
+ assert_equal(DL::TYPE_UINTPTR_T, parse_ctype("uintptr_t"))
+ end
end
end
diff --git a/test/dl/test_dl2.rb b/test/dl/test_dl2.rb
index 1d6e39114f..8f4275fb65 100644
--- a/test/dl/test_dl2.rb
+++ b/test/dl/test_dl2.rb
@@ -151,5 +151,17 @@ class TestDL < TestBase
ary2 = dlunwrap(addr)
assert_equal(ary, ary2)
end
+
+ def test_type_size_t
+ assert_equal(DL::TYPE_SSIZE_T, DL::TYPE_SIZE_T.abs)
+ end
+
+ def test_type_uintptr_t
+ assert_equal(-DL::TYPE_INTPTR_T, DL::TYPE_UINTPTR_T)
+ end
+
+ def test_sizeof_uintptr_t
+ assert_equal(DL::SIZEOF_VOIDP, DL::SIZEOF_INTPTR_T)
+ end
end
end # module DL
diff --git a/test/fiddle/test_fiddle.rb b/test/fiddle/test_fiddle.rb
index 21609933d2..f910978af5 100644
--- a/test/fiddle/test_fiddle.rb
+++ b/test/fiddle/test_fiddle.rb
@@ -15,8 +15,13 @@ class TestFiddle < Fiddle::TestCase
:TYPE_LONG_LONG,
:TYPE_FLOAT,
:TYPE_DOUBLE,
+ :TYPE_SIZE_T,
+ :TYPE_SSIZE_T,
+ :TYPE_PTRDIFF_T,
+ :TYPE_INTPTR_T,
+ :TYPE_UINTPTR_T,
].each do |name|
- assert_equal(DL.const_get(name), Fiddle.const_get(name))
+ assert_equal(DL.const_get(name), Fiddle.const_get(name), "Fiddle::#{name}")
end
end
diff --git a/test/ruby/memory_status.rb b/test/ruby/memory_status.rb
index cd4a62c1c0..3694e619ef 100644
--- a/test/ruby/memory_status.rb
+++ b/test/ruby/memory_status.rb
@@ -22,11 +22,7 @@ module Memory
extend DL::Importer
dlload "kernel32.dll", "psapi.dll"
include DL::Win32Types
- if [nil].pack('p').bytesize == 8
- typealias "SIZE_T", "DWORD64"
- else
- typealias "SIZE_T", "DWORD32"
- end
+ typealias "SIZE_T", "size_t"
PROCESS_MEMORY_COUNTERS = struct [
"DWORD cb",