ffi 1.2.1 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of ffi might be problematic. Click here for more details.

Files changed (67) hide show
  1. data/README.md +10 -5
  2. data/ext/ffi_c/ArrayType.c +6 -2
  3. data/ext/ffi_c/Buffer.c +3 -1
  4. data/ext/ffi_c/Call.c +12 -21
  5. data/ext/ffi_c/FunctionInfo.c +27 -2
  6. data/ext/ffi_c/MappedType.c +1 -2
  7. data/ext/ffi_c/MemoryPointer.c +35 -4
  8. data/ext/ffi_c/Pointer.c +5 -4
  9. data/ext/ffi_c/Struct.c +125 -8
  10. data/ext/ffi_c/StructByReference.c +33 -0
  11. data/ext/ffi_c/StructByValue.c +2 -2
  12. data/ext/ffi_c/StructLayout.c +135 -1
  13. data/ext/ffi_c/Type.c +1 -0
  14. data/ext/ffi_c/extconf.rb +1 -1
  15. data/ffi.gemspec +1 -1
  16. data/lib/ffi.rb +2 -1
  17. data/lib/ffi/library.rb +2 -0
  18. data/lib/ffi/managedstruct.rb +37 -37
  19. data/lib/ffi/struct.rb +74 -1
  20. data/lib/ffi/struct_layout_builder.rb +50 -1
  21. data/lib/ffi/tools/generator.rb +2 -0
  22. data/lib/ffi/tools/generator_task.rb +1 -0
  23. data/lib/ffi/tools/types_generator.rb +2 -0
  24. data/libtest/Benchmark.c +1 -15
  25. data/libtest/BoolTest.c +2 -16
  26. data/libtest/BufferTest.c +3 -17
  27. data/libtest/ClosureTest.c +1 -15
  28. data/libtest/EnumTest.c +1 -15
  29. data/libtest/FunctionTest.c +2 -16
  30. data/libtest/GlobalVariable.c +2 -16
  31. data/libtest/LastErrorTest.c +2 -16
  32. data/libtest/NumberTest.c +1 -15
  33. data/libtest/PointerTest.c +1 -15
  34. data/libtest/ReferenceTest.c +1 -15
  35. data/libtest/StringTest.c +1 -15
  36. data/libtest/StructTest.c +1 -15
  37. data/libtest/UnionTest.c +1 -15
  38. data/libtest/VariadicTest.c +2 -16
  39. data/spec/ffi/async_callback_spec.rb +3 -14
  40. data/spec/ffi/bool_spec.rb +7 -18
  41. data/spec/ffi/buffer_spec.rb +26 -37
  42. data/spec/ffi/callback_spec.rb +96 -107
  43. data/spec/ffi/custom_param_type.rb +2 -13
  44. data/spec/ffi/custom_type_spec.rb +1 -12
  45. data/spec/ffi/dup_spec.rb +7 -18
  46. data/spec/ffi/enum_spec.rb +128 -139
  47. data/spec/ffi/errno_spec.rb +2 -13
  48. data/spec/ffi/ffi_spec.rb +4 -15
  49. data/spec/ffi/function_spec.rb +6 -17
  50. data/spec/ffi/library_spec.rb +26 -26
  51. data/spec/ffi/long_double.rb +1 -12
  52. data/spec/ffi/managed_struct_spec.rb +3 -18
  53. data/spec/ffi/number_spec.rb +32 -43
  54. data/spec/ffi/pointer_spec.rb +7 -22
  55. data/spec/ffi/rbx/memory_pointer_spec.rb +17 -17
  56. data/spec/ffi/rbx/struct_spec.rb +2 -2
  57. data/spec/ffi/spec_helper.rb +10 -12
  58. data/spec/ffi/string_spec.rb +9 -20
  59. data/spec/ffi/strptr_spec.rb +2 -13
  60. data/spec/ffi/struct_callback_spec.rb +3 -14
  61. data/spec/ffi/struct_initialize_spec.rb +3 -14
  62. data/spec/ffi/struct_packed_spec.rb +7 -18
  63. data/spec/ffi/struct_spec.rb +93 -104
  64. data/spec/ffi/typedef_spec.rb +5 -16
  65. data/spec/ffi/union_spec.rb +4 -15
  66. data/spec/ffi/variadic_spec.rb +7 -18
  67. metadata +73 -58
@@ -1,17 +1,6 @@
1
1
  #
2
2
  # This file is part of ruby-ffi.
3
- #
4
- # This code is free software: you can redistribute it and/or modify it under
5
- # the terms of the GNU Lesser General Public License version 3 only, as
6
- # published by the Free Software Foundation.
7
- #
8
- # This code is distributed in the hope that it will be useful, but WITHOUT
9
- # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10
- # FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
11
- # version 3 for more details.
12
- #
13
- # You should have received a copy of the GNU Lesser General Public License
14
- # version 3 along with this work. If not, see <http://www.gnu.org/licenses/>.
3
+ # For licensing, see LICENSE.SPECS
15
4
  #
16
5
 
17
6
  require File.expand_path(File.join(File.dirname(__FILE__), "spec_helper"))
@@ -29,7 +18,7 @@ describe "Callback" do
29
18
  # cmp = proc do |p1, p2| args.push(p1.get_int(0)); args.push(p2.get_int(0)); 0; end
30
19
  # # this is a bit dodgey, as it relies on qsort passing the args in order
31
20
  # LibC.qsort(p, 2, 4, cmp)
32
- # args.should eq [ 1, 2 ]
21
+ # args.should == [ 1, 2 ]
33
22
  # end
34
23
  #
35
24
  # it "Block can be substituted for Callback as last argument" do
@@ -42,7 +31,7 @@ describe "Callback" do
42
31
  # args.push(p2.get_int(0))
43
32
  # 0
44
33
  # end
45
- # args.should eq [ 1, 2 ]
34
+ # args.should == [ 1, 2 ]
46
35
  # end
47
36
  module LibTest
48
37
  extend FFI::Library
@@ -96,138 +85,138 @@ describe "Callback" do
96
85
 
97
86
  end
98
87
  it "returning :char (0)" do
99
- LibTest.testCallbackVrS8 { 0 }.should eq 0
88
+ LibTest.testCallbackVrS8 { 0 }.should == 0
100
89
  end
101
90
  it "returning :char (127)" do
102
- LibTest.testCallbackVrS8 { 127 }.should eq 127
91
+ LibTest.testCallbackVrS8 { 127 }.should == 127
103
92
  end
104
93
  it "returning :char (-128)" do
105
- LibTest.testCallbackVrS8 { -128 }.should eq(-128)
94
+ LibTest.testCallbackVrS8 { -128 }.should == -128
106
95
  end
107
96
  # test wrap around
108
97
  it "returning :char (128)" do
109
- LibTest.testCallbackVrS8 { 128 }.should eq(-128)
98
+ LibTest.testCallbackVrS8 { 128 }.should == -128
110
99
  end
111
100
  it "returning :char (255)" do
112
- LibTest.testCallbackVrS8 { 0xff }.should eq(-1)
101
+ LibTest.testCallbackVrS8 { 0xff }.should == -1
113
102
  end
114
103
  it "returning :uchar (0)" do
115
- LibTest.testCallbackVrU8 { 0 }.should eq 0
104
+ LibTest.testCallbackVrU8 { 0 }.should == 0
116
105
  end
117
106
  it "returning :uchar (0xff)" do
118
- LibTest.testCallbackVrU8 { 0xff }.should eq 0xff
107
+ LibTest.testCallbackVrU8 { 0xff }.should == 0xff
119
108
  end
120
109
  it "returning :uchar (-1)" do
121
- LibTest.testCallbackVrU8 { -1 }.should eq 0xff
110
+ LibTest.testCallbackVrU8 { -1 }.should == 0xff
122
111
  end
123
112
  it "returning :uchar (128)" do
124
- LibTest.testCallbackVrU8 { 128 }.should eq 128
113
+ LibTest.testCallbackVrU8 { 128 }.should == 128
125
114
  end
126
115
  it "returning :uchar (-128)" do
127
- LibTest.testCallbackVrU8 { -128 }.should eq 128
116
+ LibTest.testCallbackVrU8 { -128 }.should == 128
128
117
  end
129
118
  it "returning :short (0)" do
130
- LibTest.testCallbackVrS16 { 0 }.should eq 0
119
+ LibTest.testCallbackVrS16 { 0 }.should == 0
131
120
  end
132
121
  it "returning :short (0x7fff)" do
133
- LibTest.testCallbackVrS16 { 0x7fff }.should eq 0x7fff
122
+ LibTest.testCallbackVrS16 { 0x7fff }.should == 0x7fff
134
123
  end
135
124
  # test wrap around
136
125
  it "returning :short (0x8000)" do
137
- LibTest.testCallbackVrS16 { 0x8000 }.should eq(-0x8000)
126
+ LibTest.testCallbackVrS16 { 0x8000 }.should == -0x8000
138
127
  end
139
128
  it "returning :short (0xffff)" do
140
- LibTest.testCallbackVrS16 { 0xffff }.should eq(-1)
129
+ LibTest.testCallbackVrS16 { 0xffff }.should == -1
141
130
  end
142
131
  it "returning :ushort (0)" do
143
- LibTest.testCallbackVrU16 { 0 }.should eq 0
132
+ LibTest.testCallbackVrU16 { 0 }.should == 0
144
133
  end
145
134
  it "returning :ushort (0x7fff)" do
146
- LibTest.testCallbackVrU16 { 0x7fff }.should eq 0x7fff
135
+ LibTest.testCallbackVrU16 { 0x7fff }.should == 0x7fff
147
136
  end
148
137
  it "returning :ushort (0x8000)" do
149
- LibTest.testCallbackVrU16 { 0x8000 }.should eq 0x8000
138
+ LibTest.testCallbackVrU16 { 0x8000 }.should == 0x8000
150
139
  end
151
140
  it "returning :ushort (0xffff)" do
152
- LibTest.testCallbackVrU16 { 0xffff }.should eq 0xffff
141
+ LibTest.testCallbackVrU16 { 0xffff }.should == 0xffff
153
142
  end
154
143
  it "returning :ushort (-1)" do
155
- LibTest.testCallbackVrU16 { -1 }.should eq 0xffff
144
+ LibTest.testCallbackVrU16 { -1 }.should == 0xffff
156
145
  end
157
146
  it "returning :int (0)" do
158
- LibTest.testCallbackVrS32 { 0 }.should eq 0
147
+ LibTest.testCallbackVrS32 { 0 }.should == 0
159
148
  end
160
149
  it "returning :int (0x7fffffff)" do
161
- LibTest.testCallbackVrS32 { 0x7fffffff }.should eq 0x7fffffff
150
+ LibTest.testCallbackVrS32 { 0x7fffffff }.should == 0x7fffffff
162
151
  end
163
152
  # test wrap around
164
153
  it "returning :int (-0x80000000)" do
165
- LibTest.testCallbackVrS32 { -0x80000000 }.should eq(-0x80000000)
154
+ LibTest.testCallbackVrS32 { -0x80000000 }.should == -0x80000000
166
155
  end
167
156
  it "returning :int (-1)" do
168
- LibTest.testCallbackVrS32 { -1 }.should eq(-1)
157
+ LibTest.testCallbackVrS32 { -1 }.should == -1
169
158
  end
170
159
  it "returning :uint (0)" do
171
- LibTest.testCallbackVrU32 { 0 }.should eq 0
160
+ LibTest.testCallbackVrU32 { 0 }.should == 0
172
161
  end
173
162
  it "returning :uint (0x7fffffff)" do
174
- LibTest.testCallbackVrU32 { 0x7fffffff }.should eq 0x7fffffff
163
+ LibTest.testCallbackVrU32 { 0x7fffffff }.should == 0x7fffffff
175
164
  end
176
165
  # test wrap around
177
166
  it "returning :uint (0x80000000)" do
178
- LibTest.testCallbackVrU32 { 0x80000000 }.should eq 0x80000000
167
+ LibTest.testCallbackVrU32 { 0x80000000 }.should == 0x80000000
179
168
  end
180
169
  it "returning :uint (0xffffffff)" do
181
- LibTest.testCallbackVrU32 { 0xffffffff }.should eq 0xffffffff
170
+ LibTest.testCallbackVrU32 { 0xffffffff }.should == 0xffffffff
182
171
  end
183
172
  it "returning :uint (-1)" do
184
- LibTest.testCallbackVrU32 { -1 }.should eq 0xffffffff
173
+ LibTest.testCallbackVrU32 { -1 }.should == 0xffffffff
185
174
  end
186
175
  it "returning :long (0)" do
187
- LibTest.testCallbackVrL { 0 }.should eq 0
176
+ LibTest.testCallbackVrL { 0 }.should == 0
188
177
  end
189
178
  it "returning :long (0x7fffffff)" do
190
- LibTest.testCallbackVrL { 0x7fffffff }.should eq 0x7fffffff
179
+ LibTest.testCallbackVrL { 0x7fffffff }.should == 0x7fffffff
191
180
  end
192
181
  # test wrap around
193
182
  it "returning :long (-0x80000000)" do
194
- LibTest.testCallbackVrL { -0x80000000 }.should eq(-0x80000000)
183
+ LibTest.testCallbackVrL { -0x80000000 }.should == -0x80000000
195
184
  end
196
185
  it "returning :long (-1)" do
197
- LibTest.testCallbackVrL { -1 }.should eq(-1)
186
+ LibTest.testCallbackVrL { -1 }.should == -1
198
187
  end
199
188
  it "returning :ulong (0)" do
200
- LibTest.testCallbackVrUL { 0 }.should eq 0
189
+ LibTest.testCallbackVrUL { 0 }.should == 0
201
190
  end
202
191
  it "returning :ulong (0x7fffffff)" do
203
- LibTest.testCallbackVrUL { 0x7fffffff }.should eq 0x7fffffff
192
+ LibTest.testCallbackVrUL { 0x7fffffff }.should == 0x7fffffff
204
193
  end
205
194
  # test wrap around
206
195
  it "returning :ulong (0x80000000)" do
207
- LibTest.testCallbackVrUL { 0x80000000 }.should eq 0x80000000
196
+ LibTest.testCallbackVrUL { 0x80000000 }.should == 0x80000000
208
197
  end
209
198
  it "returning :ulong (0xffffffff)" do
210
- LibTest.testCallbackVrUL { 0xffffffff }.should eq 0xffffffff
199
+ LibTest.testCallbackVrUL { 0xffffffff }.should == 0xffffffff
211
200
  end
212
201
  it "Callback returning :ulong (-1)" do
213
202
  if FFI::Platform::LONG_SIZE == 32
214
- LibTest.testCallbackVrUL { -1 }.should eq 0xffffffff
203
+ LibTest.testCallbackVrUL { -1 }.should == 0xffffffff
215
204
  else
216
- LibTest.testCallbackVrUL { -1 }.should eq 0xffffffffffffffff
205
+ LibTest.testCallbackVrUL { -1 }.should == 0xffffffffffffffff
217
206
  end
218
207
  end
219
208
  it "returning :long_long (0)" do
220
- LibTest.testCallbackVrS64 { 0 }.should eq 0
209
+ LibTest.testCallbackVrS64 { 0 }.should == 0
221
210
  end
222
211
  it "returning :long_long (0x7fffffffffffffff)" do
223
- LibTest.testCallbackVrS64 { 0x7fffffffffffffff }.should eq 0x7fffffffffffffff
212
+ LibTest.testCallbackVrS64 { 0x7fffffffffffffff }.should == 0x7fffffffffffffff
224
213
  end
225
214
  # test wrap around
226
215
  it "returning :long_long (-0x8000000000000000)" do
227
- LibTest.testCallbackVrS64 { -0x8000000000000000 }.should eq(-0x8000000000000000)
216
+ LibTest.testCallbackVrS64 { -0x8000000000000000 }.should == -0x8000000000000000
228
217
  end
229
218
  it "returning :long_long (-1)" do
230
- LibTest.testCallbackVrS64 { -1 }.should eq(-1)
219
+ LibTest.testCallbackVrS64 { -1 }.should == -1
231
220
  end
232
221
  it "returning bool" do
233
222
  LibTest.testCallbackVrZ { true }.should be_true
@@ -237,7 +226,7 @@ describe "Callback" do
237
226
  end
238
227
  it "returning :pointer (MemoryPointer)" do
239
228
  p = FFI::MemoryPointer.new :long
240
- LibTest.testCallbackVrP { p }.should eq p
229
+ LibTest.testCallbackVrP { p }.should == p
241
230
  end
242
231
 
243
232
 
@@ -247,9 +236,9 @@ describe "Callback" do
247
236
  s[:s32] = 0x1eefbeef
248
237
  s[:f32] = 1.234567
249
238
  ret = LibTest.testCallbackVrT { s }
250
- ret[:s8].should eq s[:s8]
251
- ret[:f32].should eq s[:f32]
252
- ret[:s32].should eq s[:s32]
239
+ ret[:s8].should == s[:s8]
240
+ ret[:f32].should == s[:f32]
241
+ ret[:s32].should == s[:s32]
253
242
 
254
243
  end
255
244
 
@@ -270,7 +259,7 @@ describe "Callback" do
270
259
  it "global variable" do
271
260
  proc = Proc.new { 0x1e }
272
261
  LibTest.cbVrS8 = proc
273
- LibTest.testGVarCallbackVrS8(LibTest.pVrS8).should eq 0x1e
262
+ LibTest.testGVarCallbackVrS8(LibTest.pVrS8).should == 0x1e
274
263
  end
275
264
 
276
265
  describe "When the callback is considered optional by the underlying library" do
@@ -286,7 +275,7 @@ describe "Callback" do
286
275
  ffi_lib TestLibrary::PATH
287
276
  attach_function :testAnonymousCallbackVrS8, :testClosureVrB, [ callback([ ], :char) ], :char
288
277
  end
289
- LibTest.testAnonymousCallbackVrS8 { 0 }.should eq 0
278
+ LibTest.testAnonymousCallbackVrS8 { 0 }.should == 0
290
279
  end
291
280
  end
292
281
 
@@ -324,7 +313,7 @@ describe "Callback" do
324
313
  end
325
314
 
326
315
  val = LibTest.testReturnsCallback(lookup_proc, 0x1234)
327
- val.should eq 0x1234 * 2
316
+ val.should == 0x1234 * 2
328
317
  lookup_proc_called.should be_true
329
318
  return_proc_called.should be_true
330
319
  end
@@ -346,7 +335,7 @@ describe "Callback" do
346
335
  end
347
336
  end
348
337
 
349
- LibTest.testReturnsCallback_2(MethodCallback.method(:lookup), 0x1234).should eq 0x2468
338
+ LibTest.testReturnsCallback_2(MethodCallback.method(:lookup), 0x1234).should == 0x2468
350
339
  end
351
340
 
352
341
  it 'should not blow up when a callback takes a callback as argument' do
@@ -377,7 +366,7 @@ describe "Callback" do
377
366
  cb.call(val)
378
367
  end
379
368
  val = LibTest.testCallbackAsArgument(callback_with_callback_arg, callback_arg, 0xff1)
380
- val.should eq 0xff1 * 2
369
+ val.should == 0xff1 * 2
381
370
  callback_arg_called.should be_true
382
371
  callback_with_callback_arg_called.should be_true
383
372
  end
@@ -389,7 +378,7 @@ describe "Callback" do
389
378
  attach_function :testReturnsFunctionPointer, [ ], :funcptr
390
379
  end
391
380
  f = LibTest.testReturnsFunctionPointer
392
- f.call(3).should eq 6
381
+ f.call(3).should == 6
393
382
  end
394
383
  end
395
384
 
@@ -446,83 +435,83 @@ describe "Callback with " do
446
435
  it ":char (0) argument" do
447
436
  v = 0xdeadbeef
448
437
  LibTest.testCallbackCrV(0) { |i| v = i }
449
- v.should eq 0
438
+ v.should == 0
450
439
  end
451
440
  it ":char (127) argument" do
452
441
  v = 0xdeadbeef
453
442
  LibTest.testCallbackCrV(127) { |i| v = i }
454
- v.should eq 127
443
+ v.should == 127
455
444
  end
456
445
  it ":char (-128) argument" do
457
446
  v = 0xdeadbeef
458
447
  LibTest.testCallbackCrV(-128) { |i| v = i }
459
- v.should eq(-128)
448
+ v.should == -128
460
449
  end
461
450
  it ":char (-1) argument" do
462
451
  v = 0xdeadbeef
463
452
  LibTest.testCallbackCrV(-1) { |i| v = i }
464
- v.should eq(-1)
453
+ v.should == -1
465
454
  end
466
455
  it ":uchar (0) argument" do
467
456
  v = 0xdeadbeef
468
457
  LibTest.testCallbackU8rV(0) { |i| v = i }
469
- v.should eq 0
458
+ v.should == 0
470
459
  end
471
460
  it ":uchar (127) argument" do
472
461
  v = 0xdeadbeef
473
462
  LibTest.testCallbackU8rV(127) { |i| v = i }
474
- v.should eq 127
463
+ v.should == 127
475
464
  end
476
465
  it ":uchar (128) argument" do
477
466
  v = 0xdeadbeef
478
467
  LibTest.testCallbackU8rV(128) { |i| v = i }
479
- v.should eq 128
468
+ v.should == 128
480
469
  end
481
470
  it ":uchar (255) argument" do
482
471
  v = 0xdeadbeef
483
472
  LibTest.testCallbackU8rV(255) { |i| v = i }
484
- v.should eq 255
473
+ v.should == 255
485
474
  end
486
475
 
487
476
  it ":short (0) argument" do
488
477
  v = 0xdeadbeef
489
478
  LibTest.testCallbackSrV(0) { |i| v = i }
490
- v.should eq 0
479
+ v.should == 0
491
480
  end
492
481
  it ":short (0x7fff) argument" do
493
482
  v = 0xdeadbeef
494
483
  LibTest.testCallbackSrV(0x7fff) { |i| v = i }
495
- v.should eq 0x7fff
484
+ v.should == 0x7fff
496
485
  end
497
486
  it ":short (-0x8000) argument" do
498
487
  v = 0xdeadbeef
499
488
  LibTest.testCallbackSrV(-0x8000) { |i| v = i }
500
- v.should eq(-0x8000)
489
+ v.should == -0x8000
501
490
  end
502
491
  it ":short (-1) argument" do
503
492
  v = 0xdeadbeef
504
493
  LibTest.testCallbackSrV(-1) { |i| v = i }
505
- v.should eq(-1)
494
+ v.should == -1
506
495
  end
507
496
  it ":ushort (0) argument" do
508
497
  v = 0xdeadbeef
509
498
  LibTest.testCallbackU16rV(0) { |i| v = i }
510
- v.should eq 0
499
+ v.should == 0
511
500
  end
512
501
  it ":ushort (0x7fff) argument" do
513
502
  v = 0xdeadbeef
514
503
  LibTest.testCallbackU16rV(0x7fff) { |i| v = i }
515
- v.should eq 0x7fff
504
+ v.should == 0x7fff
516
505
  end
517
506
  it ":ushort (0x8000) argument" do
518
507
  v = 0xdeadbeef
519
508
  LibTest.testCallbackU16rV(0x8000) { |i| v = i }
520
- v.should eq 0x8000
509
+ v.should == 0x8000
521
510
  end
522
511
  it ":ushort (0xffff) argument" do
523
512
  v = 0xdeadbeef
524
513
  LibTest.testCallbackU16rV(0xffff) { |i| v = i }
525
- v.should eq 0xffff
514
+ v.should == 0xffff
526
515
  end
527
516
  it ":bool (true) argument" do
528
517
  v = false
@@ -532,107 +521,107 @@ describe "Callback with " do
532
521
  it ":int (0) argument" do
533
522
  v = 0xdeadbeef
534
523
  LibTest.testCallbackIrV(0) { |i| v = i }
535
- v.should eq 0
524
+ v.should == 0
536
525
  end
537
526
  it ":int (0x7fffffff) argument" do
538
527
  v = 0xdeadbeef
539
528
  LibTest.testCallbackIrV(0x7fffffff) { |i| v = i }
540
- v.should eq 0x7fffffff
529
+ v.should == 0x7fffffff
541
530
  end
542
531
  it ":int (-0x80000000) argument" do
543
532
  v = 0xdeadbeef
544
533
  LibTest.testCallbackIrV(-0x80000000) { |i| v = i }
545
- v.should eq(-0x80000000)
534
+ v.should == -0x80000000
546
535
  end
547
536
  it ":int (-1) argument" do
548
537
  v = 0xdeadbeef
549
538
  LibTest.testCallbackIrV(-1) { |i| v = i }
550
- v.should eq(-1)
539
+ v.should == -1
551
540
  end
552
541
  it ":uint (0) argument" do
553
542
  v = 0xdeadbeef
554
543
  LibTest.testCallbackU32rV(0) { |i| v = i }
555
- v.should eq 0
544
+ v.should == 0
556
545
  end
557
546
  it ":uint (0x7fffffff) argument" do
558
547
  v = 0xdeadbeef
559
548
  LibTest.testCallbackU32rV(0x7fffffff) { |i| v = i }
560
- v.should eq 0x7fffffff
549
+ v.should == 0x7fffffff
561
550
  end
562
551
  it ":uint (0x80000000) argument" do
563
552
  v = 0xdeadbeef
564
553
  LibTest.testCallbackU32rV(0x80000000) { |i| v = i }
565
- v.should eq 0x80000000
554
+ v.should == 0x80000000
566
555
  end
567
556
  it ":uint (0xffffffff) argument" do
568
557
  v = 0xdeadbeef
569
558
  LibTest.testCallbackU32rV(0xffffffff) { |i| v = i }
570
- v.should eq 0xffffffff
559
+ v.should == 0xffffffff
571
560
  end
572
561
  it ":long (0) argument" do
573
562
  v = 0xdeadbeef
574
563
  LibTest.testCallbackLrV(0) { |i| v = i }
575
- v.should eq 0
564
+ v.should == 0
576
565
  end
577
566
  it ":long (0x7fffffff) argument" do
578
567
  v = 0xdeadbeef
579
568
  LibTest.testCallbackLrV(0x7fffffff) { |i| v = i }
580
- v.should eq 0x7fffffff
569
+ v.should == 0x7fffffff
581
570
  end
582
571
  it ":long (-0x80000000) argument" do
583
572
  v = 0xdeadbeef
584
573
  LibTest.testCallbackLrV(-0x80000000) { |i| v = i }
585
- v.should eq(-0x80000000)
574
+ v.should == -0x80000000
586
575
  end
587
576
  it ":long (-1) argument" do
588
577
  v = 0xdeadbeef
589
578
  LibTest.testCallbackLrV(-1) { |i| v = i }
590
- v.should eq(-1)
579
+ v.should == -1
591
580
  end
592
581
  it ":ulong (0) argument" do
593
582
  v = 0xdeadbeef
594
583
  LibTest.testCallbackULrV(0) { |i| v = i }
595
- v.should eq 0
584
+ v.should == 0
596
585
  end
597
586
  it ":ulong (0x7fffffff) argument" do
598
587
  v = 0xdeadbeef
599
588
  LibTest.testCallbackULrV(0x7fffffff) { |i| v = i }
600
- v.should eq 0x7fffffff
589
+ v.should == 0x7fffffff
601
590
  end
602
591
  it ":ulong (0x80000000) argument" do
603
592
  v = 0xdeadbeef
604
593
  LibTest.testCallbackULrV(0x80000000) { |i| v = i }
605
- v.should eq 0x80000000
594
+ v.should == 0x80000000
606
595
  end
607
596
  it ":ulong (0xffffffff) argument" do
608
597
  v = 0xdeadbeef
609
598
  LibTest.testCallbackULrV(0xffffffff) { |i| v = i }
610
- v.should eq 0xffffffff
599
+ v.should == 0xffffffff
611
600
  end
612
601
  it ":long_long (0) argument" do
613
602
  v = 0xdeadbeef
614
603
  LibTest.testCallbackLLrV(0) { |i| v = i }
615
- v.should eq 0
604
+ v.should == 0
616
605
  end
617
606
  it ":long_long (0x7fffffffffffffff) argument" do
618
607
  v = 0xdeadbeef
619
608
  LibTest.testCallbackLLrV(0x7fffffffffffffff) { |i| v = i }
620
- v.should eq 0x7fffffffffffffff
609
+ v.should == 0x7fffffffffffffff
621
610
  end
622
611
  it ":long_long (-0x8000000000000000) argument" do
623
612
  v = 0xdeadbeef
624
613
  LibTest.testCallbackLLrV(-0x8000000000000000) { |i| v = i }
625
- v.should eq(-0x8000000000000000)
614
+ v.should == -0x8000000000000000
626
615
  end
627
616
  it ":long_long (-1) argument" do
628
617
  v = 0xdeadbeef
629
618
  LibTest.testCallbackLLrV(-1) { |i| v = i }
630
- v.should eq(-1)
619
+ v.should == -1
631
620
  end
632
621
  it ":string argument" do
633
622
  v = nil
634
623
  LibTest.testCallbackArV("Hello, World") { |i| v = i }
635
- v.should eq "Hello, World"
624
+ v.should == "Hello, World"
636
625
  end
637
626
  it ":string (nil) argument" do
638
627
  v = "Hello, World"
@@ -643,18 +632,18 @@ describe "Callback with " do
643
632
  v = nil
644
633
  magic = FFI::Pointer.new(0xdeadbeef)
645
634
  LibTest.testCallbackPrV(magic) { |i| v = i }
646
- v.should eq magic
635
+ v.should == magic
647
636
  end
648
637
  it ":pointer (nil) argument" do
649
638
  v = "Hello, World"
650
639
  LibTest.testCallbackPrV(nil) { |i| v = i }
651
- v.should eq FFI::Pointer::NULL
640
+ v.should == FFI::Pointer::NULL
652
641
  end
653
642
  it "struct by reference argument" do
654
643
  v = nil
655
644
  magic = LibTest::S8F32S32.new
656
645
  LibTest.testCallbackYrV(magic) { |i| v = i }
657
- v.class.should eq magic.class
646
+ v.class.should == magic.class
658
647
  v.pointer == magic.pointer
659
648
  end
660
649
 
@@ -662,7 +651,7 @@ describe "Callback with " do
662
651
  v = LibTest::S8F32S32.new
663
652
  LibTest.testCallbackYrV(nil) { |i| v = i }
664
653
  v.is_a?(FFI::Struct).should be_true
665
- v.pointer.should eq FFI::Pointer::NULL
654
+ v.pointer.should == FFI::Pointer::NULL
666
655
  end
667
656
 
668
657
  it "varargs parameters are rejected" do