File tree Expand file tree Collapse file tree 2 files changed +39
-6
lines changed Expand file tree Collapse file tree 2 files changed +39
-6
lines changed Original file line number Diff line number Diff line change @@ -18,17 +18,17 @@ module PackInfo # :nodoc: all
18
18
}
19
19
20
20
PACK_MAP = {
21
- TYPE_VOIDP => "l !" ,
21
+ TYPE_VOIDP => "L !" ,
22
22
TYPE_CHAR => "c" ,
23
23
TYPE_SHORT => "s!" ,
24
24
TYPE_INT => "i!" ,
25
25
TYPE_LONG => "l!" ,
26
26
TYPE_FLOAT => "f" ,
27
27
TYPE_DOUBLE => "d" ,
28
- -TYPE_CHAR => "c " ,
29
- -TYPE_SHORT => "s !" ,
30
- -TYPE_INT => "i !" ,
31
- -TYPE_LONG => "l !" ,
28
+ -TYPE_CHAR => "C " ,
29
+ -TYPE_SHORT => "S !" ,
30
+ -TYPE_INT => "I !" ,
31
+ -TYPE_LONG => "L !" ,
32
32
}
33
33
34
34
SIZE_MAP = {
@@ -48,7 +48,7 @@ module PackInfo # :nodoc: all
48
48
ALIGN_MAP [ TYPE_LONG_LONG ] = ALIGN_MAP [ -TYPE_LONG_LONG ] = ALIGN_LONG_LONG
49
49
PACK_MAP [ TYPE_LONG_LONG ] = PACK_MAP [ -TYPE_LONG_LONG ] = "q"
50
50
SIZE_MAP [ TYPE_LONG_LONG ] = SIZE_MAP [ -TYPE_LONG_LONG ] = SIZEOF_LONG_LONG
51
- PACK_MAP [ TYPE_VOIDP ] = "q " if SIZEOF_LONG_LONG == SIZEOF_VOIDP
51
+ PACK_MAP [ TYPE_VOIDP ] = "Q " if SIZEOF_LONG_LONG == SIZEOF_VOIDP
52
52
end
53
53
54
54
def align ( addr , align )
Original file line number Diff line number Diff line change
1
+ begin
2
+ require_relative 'helper'
3
+ require 'fiddle/pack'
4
+ rescue LoadError
5
+ return
6
+ end
7
+
8
+ module Fiddle
9
+ class TestPack < TestCase
10
+ def test_pack_map
11
+ case Fiddle ::SIZEOF_VOIDP
12
+ when 8
13
+ assert_equal [ 0xffff_ffff_ffff_ffff ] , [ 0xffff_ffff_ffff_ffff ] . pack ( PackInfo ::PACK_MAP [ TYPE_VOIDP ] ) . unpack ( PackInfo ::PACK_MAP [ TYPE_VOIDP ] )
14
+ when 4
15
+ assert_equal [ 0xffff_ffff ] , [ 0xffff_ffff ] . pack ( PackInfo ::PACK_MAP [ TYPE_VOIDP ] ) . unpack ( PackInfo ::PACK_MAP [ TYPE_VOIDP ] )
16
+ end
17
+
18
+ case Fiddle ::SIZEOF_LONG
19
+ when 8
20
+ assert_equal [ 0xffff_ffff_ffff_ffff ] , [ 0xffff_ffff_ffff_ffff ] . pack ( PackInfo ::PACK_MAP [ -TYPE_LONG ] ) . unpack ( PackInfo ::PACK_MAP [ -TYPE_LONG ] )
21
+ when 4
22
+ assert_equal [ 0xffff_ffff ] , [ 0xffff_ffff ] . pack ( PackInfo ::PACK_MAP [ -TYPE_LONG ] ) . unpack ( PackInfo ::PACK_MAP [ -TYPE_LONG ] )
23
+ end
24
+
25
+ if Fiddle ::SIZEOF_INT == 4
26
+ assert_equal [ 0xffff_ffff ] , [ 0xffff_ffff ] . pack ( PackInfo ::PACK_MAP [ -TYPE_INT ] ) . unpack ( PackInfo ::PACK_MAP [ -TYPE_INT ] )
27
+ end
28
+
29
+ assert_equal [ 0xffff ] , [ 0xffff ] . pack ( PackInfo ::PACK_MAP [ -TYPE_SHORT ] ) . unpack ( PackInfo ::PACK_MAP [ -TYPE_SHORT ] )
30
+ assert_equal [ 0xff ] , [ 0xff ] . pack ( PackInfo ::PACK_MAP [ -TYPE_CHAR ] ) . unpack ( PackInfo ::PACK_MAP [ -TYPE_CHAR ] )
31
+ end
32
+ end
33
+ end
You can’t perform that action at this time.
0 commit comments