bindata 2.4.13 → 2.4.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/test/stringz_test.rb CHANGED
@@ -6,9 +6,9 @@ describe BinData::Stringz, "when empty" do
6
6
  let(:obj) { BinData::Stringz.new }
7
7
 
8
8
  it "initial state" do
9
- obj.value.must_equal ""
10
- obj.num_bytes.must_equal 1
11
- obj.to_binary_s.must_equal_binary "\0"
9
+ _(obj.value).must_equal ""
10
+ _(obj.num_bytes).must_equal 1
11
+ _(obj.to_binary_s).must_equal_binary "\0"
12
12
  end
13
13
  end
14
14
 
@@ -16,9 +16,9 @@ describe BinData::Stringz, "with value set" do
16
16
  let(:obj) { BinData::Stringz.new("abcd") }
17
17
 
18
18
  it "initial state" do
19
- obj.value.must_equal "abcd"
20
- obj.num_bytes.must_equal 5
21
- obj.to_binary_s.must_equal_binary "abcd\0"
19
+ _(obj.value).must_equal "abcd"
20
+ _(obj.num_bytes).must_equal 5
21
+ _(obj.to_binary_s).must_equal_binary "abcd\0"
22
22
  end
23
23
  end
24
24
 
@@ -28,19 +28,19 @@ describe BinData::Stringz, "when reading" do
28
28
  it "stops at the first zero byte" do
29
29
  io = StringIO.new("abcd\0xyz\0")
30
30
  obj.read(io)
31
- io.pos.must_equal 5
32
- obj.must_equal "abcd"
31
+ _(io.pos).must_equal 5
32
+ _(obj).must_equal "abcd"
33
33
  end
34
34
 
35
35
  it "handles a zero length string" do
36
36
  io = StringIO.new("\0abcd")
37
37
  obj.read(io)
38
- io.pos.must_equal 1
39
- obj.must_equal ""
38
+ _(io.pos).must_equal 1
39
+ _(obj).must_equal ""
40
40
  end
41
41
 
42
42
  it "fails if no zero byte is found" do
43
- lambda {obj.read("abcd") }.must_raise EOFError
43
+ _ {obj.read("abcd") }.must_raise EOFError
44
44
  end
45
45
  end
46
46
 
@@ -49,27 +49,27 @@ describe BinData::Stringz, "when setting the value" do
49
49
 
50
50
  it "includes the zero byte in num_bytes total" do
51
51
  obj.assign("abcd")
52
- obj.num_bytes.must_equal 5
52
+ _(obj.num_bytes).must_equal 5
53
53
  end
54
54
 
55
55
  it "accepts empty strings" do
56
56
  obj.assign("")
57
- obj.must_equal ""
57
+ _(obj).must_equal ""
58
58
  end
59
59
 
60
60
  it "accepts strings that aren't zero terminated" do
61
61
  obj.assign("abcd")
62
- obj.must_equal "abcd"
62
+ _(obj).must_equal "abcd"
63
63
  end
64
64
 
65
65
  it "accepts strings that are zero terminated" do
66
66
  obj.assign("abcd\0")
67
- obj.must_equal "abcd"
67
+ _(obj).must_equal "abcd"
68
68
  end
69
69
 
70
70
  it "accepts up to the first zero byte" do
71
71
  obj.assign("abcd\0xyz\0")
72
- obj.must_equal "abcd"
72
+ _(obj).must_equal "abcd"
73
73
  end
74
74
  end
75
75
 
@@ -79,49 +79,49 @@ describe BinData::Stringz, "with max_length" do
79
79
  it "reads less than max_length" do
80
80
  io = StringIO.new("abc\0xyz")
81
81
  obj.read(io)
82
- obj.must_equal "abc"
82
+ _(obj).must_equal "abc"
83
83
  end
84
84
 
85
85
  it "reads exactly max_length" do
86
86
  io = StringIO.new("abcd\0xyz")
87
87
  obj.read(io)
88
- obj.must_equal "abcd"
88
+ _(obj).must_equal "abcd"
89
89
  end
90
90
 
91
91
  it "reads no more than max_length" do
92
92
  io = StringIO.new("abcdefg\0xyz")
93
93
  obj.read(io)
94
- io.pos.must_equal 5
95
- obj.must_equal "abcd"
94
+ _(io.pos).must_equal 5
95
+ _(obj).must_equal "abcd"
96
96
  end
97
97
 
98
98
  it "accepts values less than max_length" do
99
99
  obj.assign("abc")
100
- obj.must_equal "abc"
100
+ _(obj).must_equal "abc"
101
101
  end
102
102
 
103
103
  it "accepts values exactly max_length" do
104
104
  obj.assign("abcd")
105
- obj.must_equal "abcd"
105
+ _(obj).must_equal "abcd"
106
106
  end
107
107
 
108
108
  it "trims values greater than max_length" do
109
109
  obj.assign("abcdefg")
110
- obj.must_equal "abcd"
110
+ _(obj).must_equal "abcd"
111
111
  end
112
112
 
113
113
  it "writes values greater than max_length" do
114
114
  obj.assign("abcdefg")
115
- obj.to_binary_s.must_equal_binary "abcd\0"
115
+ _(obj.to_binary_s).must_equal_binary "abcd\0"
116
116
  end
117
117
 
118
118
  it "writes values less than max_length" do
119
119
  obj.assign("abc")
120
- obj.to_binary_s.must_equal_binary "abc\0"
120
+ _(obj.to_binary_s).must_equal_binary "abc\0"
121
121
  end
122
122
 
123
123
  it "writes values exactly max_length" do
124
124
  obj.assign("abcd")
125
- obj.to_binary_s.must_equal_binary "abcd\0"
125
+ _(obj.to_binary_s).must_equal_binary "abcd\0"
126
126
  end
127
127
  end
data/test/struct_test.rb CHANGED
@@ -5,14 +5,14 @@ require File.expand_path(File.join(File.dirname(__FILE__), "test_helper"))
5
5
  describe BinData::Struct, "when initializing" do
6
6
  it "fails on non registered types" do
7
7
  params = {fields: [[:non_registered_type, :a]]}
8
- lambda {
8
+ _ {
9
9
  BinData::Struct.new(params)
10
10
  }.must_raise BinData::UnRegisteredTypeError
11
11
  end
12
12
 
13
13
  it "fails on duplicate names" do
14
14
  params = {fields: [[:int8, :a], [:int8, :b], [:int8, :a]]}
15
- lambda {
15
+ _ {
16
16
  BinData::Struct.new(params)
17
17
  }.must_raise NameError
18
18
  end
@@ -20,21 +20,21 @@ describe BinData::Struct, "when initializing" do
20
20
  it "fails on reserved names" do
21
21
  # note that #invert is from Hash.instance_methods
22
22
  params = {fields: [[:int8, :a], [:int8, :invert]]}
23
- lambda {
23
+ _ {
24
24
  BinData::Struct.new(params)
25
25
  }.must_raise NameError
26
26
  end
27
27
 
28
28
  it "fails when field name shadows an existing method" do
29
29
  params = {fields: [[:int8, :object_id]]}
30
- lambda {
30
+ _ {
31
31
  BinData::Struct.new(params)
32
32
  }.must_raise NameError
33
33
  end
34
34
 
35
35
  it "fails on unknown endian" do
36
36
  params = {endian: 'bad value', fields: []}
37
- lambda {
37
+ _ {
38
38
  BinData::Struct.new(params)
39
39
  }.must_raise ArgumentError
40
40
  end
@@ -51,18 +51,18 @@ describe BinData::Struct, "with anonymous fields" do
51
51
  }
52
52
 
53
53
  it "only shows non anonymous fields" do
54
- obj.field_names.must_equal [:a]
54
+ _(obj.field_names).must_equal [:a]
55
55
  end
56
56
 
57
57
  it "does not include anonymous fields in snapshot" do
58
58
  obj.a = 5
59
- obj.snapshot.must_equal({a: 5})
59
+ _(obj.snapshot).must_equal({a: 5})
60
60
  end
61
61
 
62
62
  it "writes anonymous fields" do
63
63
  obj.read("\001\002\003")
64
64
  obj.a.clear
65
- obj.to_binary_s.must_equal_binary "\005\002\005"
65
+ _(obj.to_binary_s).must_equal_binary "\005\002\005"
66
66
  end
67
67
  end
68
68
 
@@ -78,24 +78,24 @@ describe BinData::Struct, "with hidden fields" do
78
78
  }
79
79
 
80
80
  it "only shows fields that aren't hidden" do
81
- obj.field_names.must_equal [:a, :d]
81
+ _(obj.field_names).must_equal [:a, :d]
82
82
  end
83
83
 
84
84
  it "shows all fields when requested" do
85
- obj.field_names(true).must_equal [:a, :b, :c, :d]
85
+ _(obj.field_names(true)).must_equal [:a, :b, :c, :d]
86
86
  end
87
87
 
88
88
  it "accesses hidden fields directly" do
89
- obj.b.must_equal 5
89
+ _(obj.b).must_equal 5
90
90
  obj.c = 15
91
- obj.c.must_equal 15
91
+ _(obj.c).must_equal 15
92
92
 
93
- obj.must_respond_to :b=
93
+ _(obj).must_respond_to :b=
94
94
  end
95
95
 
96
96
  it "does not include hidden fields in snapshot" do
97
97
  obj.b = 7
98
- obj.snapshot.must_equal({a: 0, d: 7})
98
+ _(obj.snapshot).must_equal({a: 0, d: 7})
99
99
  end
100
100
 
101
101
  it "detects hidden fields with has_key?" do
@@ -107,19 +107,19 @@ describe BinData::Struct, "with multiple fields" do
107
107
  let(:params) { { fields: [ [:int8, :a], [:int8, :b] ] } }
108
108
  let(:obj) { BinData::Struct.new({a: 1, b: 2}, params) }
109
109
 
110
- specify { obj.field_names.must_equal [:a, :b] }
111
- specify { obj.to_binary_s.must_equal_binary "\x01\x02" }
110
+ specify { _(obj.field_names).must_equal [:a, :b] }
111
+ specify { _(obj.to_binary_s).must_equal_binary "\x01\x02" }
112
112
 
113
113
  it "returns num_bytes" do
114
- obj.a.num_bytes.must_equal 1
115
- obj.b.num_bytes.must_equal 1
116
- obj.num_bytes.must_equal 2
114
+ _(obj.a.num_bytes).must_equal 1
115
+ _(obj.b.num_bytes).must_equal 1
116
+ _(obj.num_bytes).must_equal 2
117
117
  end
118
118
 
119
119
  it "identifies accepted parameters" do
120
- BinData::Struct.accepted_parameters.all.must_include :fields
121
- BinData::Struct.accepted_parameters.all.must_include :hide
122
- BinData::Struct.accepted_parameters.all.must_include :endian
120
+ _(BinData::Struct.accepted_parameters.all).must_include :fields
121
+ _(BinData::Struct.accepted_parameters.all).must_include :hide
122
+ _(BinData::Struct.accepted_parameters.all).must_include :endian
123
123
  end
124
124
 
125
125
  it "clears" do
@@ -137,16 +137,16 @@ describe BinData::Struct, "with multiple fields" do
137
137
  end
138
138
 
139
139
  it "reads elements dynamically" do
140
- obj[:a].must_equal 1
140
+ _(obj[:a]).must_equal 1
141
141
  end
142
142
 
143
143
  it "handles not existing elements" do
144
- obj[:does_not_exist].must_be_nil
144
+ _(obj[:does_not_exist]).must_be_nil
145
145
  end
146
146
 
147
147
  it "writes elements dynamically" do
148
148
  obj[:a] = 2
149
- obj.a.must_equal 2
149
+ _(obj.a).must_equal 2
150
150
  end
151
151
 
152
152
  it "implements has_key?" do
@@ -156,28 +156,28 @@ describe BinData::Struct, "with multiple fields" do
156
156
  it "reads ordered" do
157
157
  obj.read("\x03\x04")
158
158
 
159
- obj.a.must_equal 3
160
- obj.b.must_equal 4
159
+ _(obj.a).must_equal 3
160
+ _(obj.b).must_equal 4
161
161
  end
162
162
 
163
163
  it "returns a snapshot" do
164
164
  snap = obj.snapshot
165
165
  assert snap.respond_to?(:a)
166
- snap.a.must_equal 1
167
- snap.b.must_equal 2
168
- snap.must_equal({ a: 1, b: 2 })
166
+ _(snap.a).must_equal 1
167
+ _(snap.b).must_equal 2
168
+ _(snap).must_equal({ a: 1, b: 2 })
169
169
  end
170
170
 
171
171
  it "assigns from partial hash" do
172
172
  obj.assign(a: 3)
173
- obj.a.must_equal 3
174
- obj.b.must_equal 0
173
+ _(obj.a).must_equal 3
174
+ _(obj.b).must_equal 0
175
175
  end
176
176
 
177
177
  it "assigns from hash" do
178
178
  obj.assign(a: 3, b: 4)
179
- obj.a.must_equal 3
180
- obj.b.must_equal 4
179
+ _(obj.a).must_equal 3
180
+ _(obj.b).must_equal 4
181
181
  end
182
182
 
183
183
  it "assigns from nil" do
@@ -191,8 +191,8 @@ describe BinData::Struct, "with multiple fields" do
191
191
  src.b = 4
192
192
 
193
193
  obj.assign(src)
194
- obj.a.must_equal 3
195
- obj.b.must_equal 4
194
+ _(obj.a).must_equal 3
195
+ _(obj.b).must_equal 4
196
196
  end
197
197
 
198
198
  it "assigns from snapshot" do
@@ -201,29 +201,29 @@ describe BinData::Struct, "with multiple fields" do
201
201
  src.b = 4
202
202
 
203
203
  obj.assign(src.snapshot)
204
- obj.a.must_equal 3
205
- obj.b.must_equal 4
204
+ _(obj.a).must_equal 3
205
+ _(obj.b).must_equal 4
206
206
  end
207
207
 
208
208
  it "fails on unknown method call" do
209
- lambda { obj.does_not_exist }.must_raise NoMethodError
209
+ _ { obj.does_not_exist }.must_raise NoMethodError
210
210
  end
211
211
 
212
212
  describe "#snapshot" do
213
213
  it "has ordered #keys" do
214
- obj.snapshot.keys.must_equal [:a, :b]
214
+ _(obj.snapshot.keys).must_equal [:a, :b]
215
215
  end
216
216
 
217
217
  it "has ordered #each" do
218
218
  keys = []
219
219
  obj.snapshot.each { |el| keys << el[0] }
220
- keys.must_equal [:a, :b]
220
+ _(keys).must_equal [:a, :b]
221
221
  end
222
222
 
223
223
  it "has ordered #each_pair" do
224
224
  keys = []
225
225
  obj.snapshot.each_pair { |k, v| keys << k }
226
- keys.must_equal [:a, :b]
226
+ _(keys).must_equal [:a, :b]
227
227
  end
228
228
  end
229
229
  end
@@ -243,27 +243,27 @@ describe BinData::Struct, "with nested structs" do
243
243
  BinData::Struct.new(params)
244
244
  }
245
245
 
246
- specify { obj.field_names.must_equal [:a, :b, :c] }
246
+ specify { _(obj.field_names).must_equal [:a, :b, :c] }
247
247
 
248
248
  it "returns num_bytes" do
249
- obj.b.num_bytes.must_equal 2
250
- obj.c.num_bytes.must_equal 2
251
- obj.num_bytes.must_equal 5
249
+ _(obj.b.num_bytes).must_equal 2
250
+ _(obj.c.num_bytes).must_equal 2
251
+ _(obj.num_bytes).must_equal 5
252
252
  end
253
253
 
254
254
  it "accesses nested fields" do
255
- obj.a.must_equal 6
256
- obj.b.w.must_equal 3
257
- obj.b.x.must_equal 6
258
- obj.c.y.must_equal 3
259
- obj.c.z.must_equal 0
255
+ _(obj.a).must_equal 6
256
+ _(obj.b.w).must_equal 3
257
+ _(obj.b.x).must_equal 6
258
+ _(obj.c.y).must_equal 3
259
+ _(obj.c.z).must_equal 0
260
260
  end
261
261
 
262
262
  it "returns correct abs_offset" do
263
- obj.b.abs_offset.must_equal 1
264
- obj.b.w.abs_offset.must_equal 1
265
- obj.c.abs_offset.must_equal 3
266
- obj.c.z.abs_offset.must_equal 4
263
+ _(obj.b.abs_offset).must_equal 1
264
+ _(obj.b.w.abs_offset).must_equal 1
265
+ _(obj.c.abs_offset).must_equal 3
266
+ _(obj.c.z.abs_offset).must_equal 4
267
267
  end
268
268
  end
269
269
 
@@ -300,7 +300,7 @@ describe BinData::Struct, "with an endian defined" do
300
300
 
301
301
  expected = [1, 2.0, 3, 4, 5, 6, 7, 8].pack('veCCVvNv')
302
302
 
303
- obj.to_binary_s.must_equal_binary expected
303
+ _(obj.to_binary_s).must_equal_binary expected
304
304
  end
305
305
  end
306
306
 
@@ -310,23 +310,23 @@ describe BinData::Struct, "with bit fields" do
310
310
  BinData::Struct.new({a: 1, b: 2, c: 3, d: 1}, params)
311
311
  }
312
312
 
313
- specify { obj.num_bytes.must_equal 3 }
314
- specify { obj.to_binary_s.must_equal_binary [0b0000_0101, 3, 1].pack("C*") }
313
+ specify { _(obj.num_bytes).must_equal 3 }
314
+ specify { _(obj.to_binary_s).must_equal_binary [0b0000_0101, 3, 1].pack("C*") }
315
315
 
316
316
  it "reads" do
317
317
  str = [0b0000_0110, 5, 0].pack("C*")
318
318
  obj.read(str)
319
- obj.a.must_equal 0
320
- obj.b.must_equal 3
321
- obj.c.must_equal 5
322
- obj.d.must_equal 0
319
+ _(obj.a).must_equal 0
320
+ _(obj.b).must_equal 3
321
+ _(obj.c).must_equal 5
322
+ _(obj.d).must_equal 0
323
323
  end
324
324
 
325
325
  it "has correct offsets" do
326
- obj.a.rel_offset.must_equal 0
327
- obj.b.rel_offset.must_equal 0
328
- obj.c.rel_offset.must_equal 1
329
- obj.d.rel_offset.must_equal 2
326
+ _(obj.a.rel_offset).must_equal 0
327
+ _(obj.b.rel_offset).must_equal 0
328
+ _(obj.c.rel_offset).must_equal 1
329
+ _(obj.d.rel_offset).must_equal 2
330
330
  end
331
331
  end
332
332
 
@@ -341,10 +341,10 @@ describe BinData::Struct, "with nested endian" do
341
341
  obj = BinData::Struct.new(params)
342
342
  obj.read("\x00\x01\x02\x00\x03\x00\x00\x04")
343
343
 
344
- obj.a.must_equal 1
345
- obj.s.b.must_equal 2
346
- obj.s.c.must_equal 3
347
- obj.d.must_equal 4
344
+ _(obj.a).must_equal 1
345
+ _(obj.s.b).must_equal 2
346
+ _(obj.s.c).must_equal 3
347
+ _(obj.d).must_equal 4
348
348
  end
349
349
  end
350
350
 
@@ -355,46 +355,46 @@ describe BinData::Struct, "with a search_prefix" do
355
355
  it "searches symbol prefixes" do
356
356
  obj = BinData::Struct.new(search_prefix: :a,
357
357
  fields: [ [:short, :f] ])
358
- obj.f.class.name.must_equal "AShort"
358
+ _(obj.f.class.name).must_equal "AShort"
359
359
  end
360
360
 
361
361
  it "searches string prefixes" do
362
362
  obj = BinData::Struct.new(search_prefix: "a",
363
363
  fields: [ [:short, :f] ])
364
- obj.f.class.name.must_equal "AShort"
364
+ _(obj.f.class.name).must_equal "AShort"
365
365
  end
366
366
 
367
367
  it "searches string prefixes with optional underscore" do
368
368
  obj = BinData::Struct.new(search_prefix: "a_",
369
369
  fields: [ [:short, :f] ])
370
- obj.f.class.name.must_equal "AShort"
370
+ _(obj.f.class.name).must_equal "AShort"
371
371
  end
372
372
 
373
373
  it "searches multiple prefixes" do
374
374
  obj = BinData::Struct.new(search_prefix: [:x, :a],
375
375
  fields: [ [:short, :f] ])
376
- obj.f.class.name.must_equal "AShort"
376
+ _(obj.f.class.name).must_equal "AShort"
377
377
  end
378
378
 
379
379
  it "uses parent search_prefix" do
380
380
  nested_params = { fields: [[:short, :f]] }
381
381
  obj = BinData::Struct.new(search_prefix: :a,
382
382
  fields: [[:struct, :s, nested_params]])
383
- obj.s.f.class.name.must_equal "AShort"
383
+ _(obj.s.f.class.name).must_equal "AShort"
384
384
  end
385
385
 
386
386
  it "searches parent search_prefix" do
387
387
  nested_params = { search_prefix: :x, fields: [[:short, :f]] }
388
388
  obj = BinData::Struct.new(search_prefix: :a,
389
389
  fields: [[:struct, :s, nested_params]])
390
- obj.s.f.class.name.must_equal "AShort"
390
+ _(obj.s.f.class.name).must_equal "AShort"
391
391
  end
392
392
 
393
393
  it "prioritises nested search_prefix" do
394
394
  nested_params = { search_prefix: :a, fields: [[:short, :f]] }
395
395
  obj = BinData::Struct.new(search_prefix: :b,
396
396
  fields: [[:struct, :s, nested_params]])
397
- obj.s.f.class.name.must_equal "AShort"
397
+ _(obj.s.f.class.name).must_equal "AShort"
398
398
  end
399
399
  end
400
400
 
@@ -408,24 +408,24 @@ describe BinData::Struct, "with byte_align" do
408
408
  }
409
409
 
410
410
  it "has #num_bytes" do
411
- obj.num_bytes.must_equal 10
411
+ _(obj.num_bytes).must_equal 10
412
412
  end
413
413
 
414
414
  it "reads" do
415
415
  obj.read("\x01\x00\x00\x00\x00\x02\xc0\x00\x00\x04")
416
- obj.snapshot.must_equal({ a: 1, b: 2, c: 3, d: 4 })
416
+ _(obj.snapshot).must_equal({ a: 1, b: 2, c: 3, d: 4 })
417
417
  end
418
418
 
419
419
  it "writes" do
420
420
  obj.assign(a: 1, b: 2, c: 3, d: 4)
421
- obj.to_binary_s.must_equal_binary "\x01\x00\x00\x00\x00\x02\xc0\x00\x00\x04"
421
+ _(obj.to_binary_s).must_equal_binary "\x01\x00\x00\x00\x00\x02\xc0\x00\x00\x04"
422
422
  end
423
423
 
424
424
  it "has correct offsets" do
425
- obj.a.rel_offset.must_equal 0
426
- obj.b.rel_offset.must_equal 5
427
- obj.c.rel_offset.must_equal 6
428
- obj.d.rel_offset.must_equal 9
425
+ _(obj.a.rel_offset).must_equal 0
426
+ _(obj.b.rel_offset).must_equal 5
427
+ _(obj.c.rel_offset).must_equal 6
428
+ _(obj.d.rel_offset).must_equal 9
429
429
  end
430
430
  end
431
431
 
@@ -435,6 +435,6 @@ describe BinData::Struct, "with dynamically named types" do
435
435
 
436
436
  obj = BinData::Struct.new(fields: [[:my_struct, :v]])
437
437
 
438
- obj.v.a.must_equal 3
438
+ _(obj.v.a).must_equal 3
439
439
  end
440
440
  end