зеркало из https://github.com/github/ruby.git
38 строки
1.4 KiB
Ruby
38 строки
1.4 KiB
Ruby
|
begin
|
||
|
require_relative 'helper'
|
||
|
require 'fiddle/pack'
|
||
|
rescue LoadError
|
||
|
return
|
||
|
end
|
||
|
|
||
|
module Fiddle
|
||
|
class TestPack < TestCase
|
||
|
def test_pack_map
|
||
|
if defined?(TYPE_LONG_LONG)
|
||
|
assert_equal [0xffff_ffff_ffff_ffff], [0xffff_ffff_ffff_ffff].pack(PackInfo::PACK_MAP[-TYPE_LONG_LONG]).unpack(PackInfo::PACK_MAP[-TYPE_LONG_LONG])
|
||
|
end
|
||
|
|
||
|
case Fiddle::SIZEOF_VOIDP
|
||
|
when 8
|
||
|
assert_equal [0xffff_ffff_ffff_ffff], [0xffff_ffff_ffff_ffff].pack(PackInfo::PACK_MAP[TYPE_VOIDP]).unpack(PackInfo::PACK_MAP[TYPE_VOIDP])
|
||
|
when 4
|
||
|
assert_equal [0xffff_ffff], [0xffff_ffff].pack(PackInfo::PACK_MAP[TYPE_VOIDP]).unpack(PackInfo::PACK_MAP[TYPE_VOIDP])
|
||
|
end
|
||
|
|
||
|
case Fiddle::SIZEOF_LONG
|
||
|
when 8
|
||
|
assert_equal [0xffff_ffff_ffff_ffff], [0xffff_ffff_ffff_ffff].pack(PackInfo::PACK_MAP[-TYPE_LONG]).unpack(PackInfo::PACK_MAP[-TYPE_LONG])
|
||
|
when 4
|
||
|
assert_equal [0xffff_ffff], [0xffff_ffff].pack(PackInfo::PACK_MAP[-TYPE_LONG]).unpack(PackInfo::PACK_MAP[-TYPE_LONG])
|
||
|
end
|
||
|
|
||
|
if Fiddle::SIZEOF_INT == 4
|
||
|
assert_equal [0xffff_ffff], [0xffff_ffff].pack(PackInfo::PACK_MAP[-TYPE_INT]).unpack(PackInfo::PACK_MAP[-TYPE_INT])
|
||
|
end
|
||
|
|
||
|
assert_equal [0xffff], [0xffff].pack(PackInfo::PACK_MAP[-TYPE_SHORT]).unpack(PackInfo::PACK_MAP[-TYPE_SHORT])
|
||
|
assert_equal [0xff], [0xff].pack(PackInfo::PACK_MAP[-TYPE_CHAR]).unpack(PackInfo::PACK_MAP[-TYPE_CHAR])
|
||
|
end
|
||
|
end
|
||
|
end
|