cddl 0.7.2 → 0.7.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8803ef067ea0ea2959c233dadcdb2c6b9efc951c
4
- data.tar.gz: 59b76d0a3da17193115e4d023414d486b07b80b7
3
+ metadata.gz: 8059c1eece18e74a9f61203673b8e9650b90a41b
4
+ data.tar.gz: 2cbd8a2ffe191c1e63b65ecd8c1274c37d916eab
5
5
  SHA512:
6
- metadata.gz: c2c84dc9a1eed0643f1bfe619fbc922290f4815d3f77e04ca5e076421b717c45eb0ccd48b00636d71a602d2324aacaaf8be2256b59bcb6f6a9712dfe40f3bc21
7
- data.tar.gz: bccdb7d885651ded32f13eb95aaffaed70a2c2ad4490465f4d866703d18c49c843ce84820067834287c8adb1aeddcf658719f41ee49dd5a360d749d89d0f9b89
6
+ metadata.gz: 805dec239578ebd63c6d0ebd53f60bb15c7b536ed6ad7c08a796158f8046ba800557985f3995469a77ddb3c7fd89f67add4ce2c336073d87ecfa369ccbcaf654
7
+ data.tar.gz: 336f8a01af37ca9b6f40f7a06ed8193fc96acfab84123537e8a552eb64a8fffcd457c6c0bddd0e5b80cc7c864bce03405f65531ecc42e682971da9cbfb4f8bf9
data/cddl.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  spec = Gem::Specification.new do |s|
2
2
  s.name = 'cddl'
3
- s.version = '0.7.2'
3
+ s.version = '0.7.3'
4
4
  s.summary = "CDDL generator and validator."
5
5
  s.description = %{A parser, generator, and validator for CDDL}
6
6
  s.add_dependency('cbor-diag')
data/lib/cbor-pp.rb CHANGED
@@ -109,6 +109,19 @@ class CBOR::PP < PrettyPrint
109
109
  end
110
110
  end
111
111
 
112
+ module EqlMixin
113
+ def eql?(other)
114
+ if other.respond_to? :__getobj__
115
+ eql? other.__getobj__
116
+ else
117
+ super
118
+ end
119
+ end
120
+ # def ==(other)
121
+ # eql?(other) || super
122
+ # end
123
+ end
124
+
112
125
  def self.add_annotations(tree, ann_list)
113
126
  tree.cbor_add_annotations_from(ann_list)
114
127
  end
@@ -161,7 +174,7 @@ class Hash # :nodoc:
161
174
  end
162
175
  def cbor_add_annotations_from(ann_list)
163
176
  super
164
- each {|k, v|
177
+ each {|k, v|
165
178
  # k.cbor_add_annotations_from(ann_list)
166
179
  v.cbor_add_annotations_from(ann_list)
167
180
  }
@@ -170,19 +183,25 @@ class Hash # :nodoc:
170
183
  # to_a.cbor_clone.to_h # this breaks for unknown reasons
171
184
  h = {}
172
185
  each {|k, v| h[k.cbor_clone] = v.cbor_clone}
173
- each {|k, v| fail [h, k, h[k], v].inspect unless h[k] == v}
186
+ each {|k, v| fail [h, k, k.cbor_clone, h[k], v].inspect unless h[k] == v}
174
187
  h
175
188
  end
176
189
  end
177
190
 
178
191
  class Numeric
179
- def eql?(other)
180
- if other.respond_to? :__getobj__
181
- eql? other.__getobj__
182
- else
183
- super
184
- end
185
- end
192
+ prepend CBOR::PP::EqlMixin
193
+ end
194
+
195
+ class TrueClass
196
+ prepend CBOR::PP::EqlMixin
197
+ end
198
+
199
+ class FalseClass
200
+ prepend CBOR::PP::EqlMixin
201
+ end
202
+
203
+ class NilClass
204
+ prepend CBOR::PP::EqlMixin
186
205
  end
187
206
 
188
207
  class Object < BasicObject # :nodoc:
data/lib/cddl.rb CHANGED
@@ -345,7 +345,7 @@ module CDDL
345
345
  generate1(vr)
346
346
  ]}
347
347
  rescue BackTrack
348
- fail BackTrack("Need #{where[1]}..#{where[2]} of these: #{[kr, vr].inspect}") unless where[1] == 0
348
+ fail BackTrack.new("Need #{where[1]}..#{where[2]} of these: #{[kr, vr].inspect}") unless where[1] == 0
349
349
  []
350
350
  end
351
351
  when :string, :int, :float
@@ -768,7 +768,7 @@ module CDDL
768
768
  when 7
769
769
  t, v = extract_value(where)
770
770
  if t
771
- v == d
771
+ v.eql? d
772
772
  else
773
773
  case where[2]
774
774
  when nil
@@ -0,0 +1,91 @@
1
+
2
+ grasp-message = message
3
+
4
+ session-id = 0..16777215
5
+ ; that is up to 24 bits
6
+
7
+ message /= discovery-message
8
+ discovery-message = [M_DISCOVERY, session-id, objective]
9
+
10
+ message /= response-message
11
+ response-message = [M_RESPONSE, session-id,
12
+ (+locator-option // divert-option // objective)]
13
+
14
+ message /= request-message
15
+ request-message = [M_REQUEST, session-id, objective]
16
+
17
+ message /= negotiation-message
18
+ negotiation-message = [M_NEGOTIATE, session-id, objective]
19
+
20
+ message /= end-message
21
+ end-message = [M_END, session-id, (accept-option / decline-option)]
22
+
23
+ message /= wait-message
24
+ wait-message = [M_WAIT, session-id, waiting-time-option]
25
+
26
+ divert-option = [O_DIVERT, +locator-option]
27
+
28
+ accept-option = [O_ACCEPT]
29
+
30
+ decline-option = [O_DECLINE]
31
+
32
+ waiting-time-option = [O_WAITING, option-waiting-time]
33
+ option-waiting-time = 0..4294967295 ; in milliseconds
34
+
35
+ option-device-id = [O_DEVICE_ID, bytes]
36
+
37
+ locator-option /= ipv4-locator-option
38
+ ipv4-locator-option = bytes .size 4
39
+ ; this is simpler than [O_IPv4_LOCATOR, bytes .size 4]
40
+
41
+ locator-option /= ipv6-locator-option
42
+ ipv6-locator-option = bytes .size 16
43
+
44
+ locator-option /= fqdn-locator-option
45
+ fqdn-locator-option = [O_FQDN_LOCATOR, text]
46
+
47
+ locator-option /= url-locator-option
48
+ url-locator-option = [O_URL_LOCATOR, text]
49
+
50
+ objective-flags = uint .bits objective-flag
51
+
52
+ objective-flag = &(
53
+ D: 0
54
+ N: 1
55
+ S: 2
56
+ )
57
+
58
+ ; D means valid for discovery only
59
+ ; N means valid for discovery and negotiation
60
+ ; S means valid for discovery and synchronization
61
+
62
+ objective /= generic-obj
63
+ generic-obj = [objective-name, objective-flags, loop-count, ?any]
64
+
65
+ objective /= vendor-obj
66
+ vendor-obj = [{"PEN":pen}, objective-name, objective-flags,
67
+ loop-count, ?any]
68
+
69
+ ; A PEN is used to distinguish vendor-specific options.
70
+
71
+ pen = 0..4294967295
72
+ objective-name = tstr
73
+ loop-count = 0..255
74
+
75
+ ; Constants
76
+
77
+ M_DISCOVERY = 1
78
+ M_RESPONSE = 2
79
+ M_REQUEST = 3
80
+ M_NEGOTIATE = 4
81
+ M_END = 5
82
+ M_WAIT = 6
83
+
84
+ O_DIVERT = 100
85
+ O_ACCEPT = 101
86
+ O_DECLINE = 102
87
+ O_WAITING = 103
88
+ O_DEVICE_ID = 104
89
+ O_FQDN_LOCATOR = 105
90
+ O_URL_LOCATOR = 106
91
+
@@ -0,0 +1,15 @@
1
+ element = [ns, gi, attr, elts]
2
+
3
+ ns = text / nil
4
+ ; can be name syntax or URI
5
+
6
+ gi = text ; name syntax
7
+
8
+ attr = { * label => any }
9
+
10
+ label = text / int
11
+
12
+ elts = value / [* element]
13
+ ; could allow values inside array for mixed content
14
+
15
+ value = int / text
data/test/test-cddl.rb CHANGED
@@ -7,6 +7,13 @@ require 'cbor-diagnostic.rb'
7
7
  require_relative '../lib/cddl'
8
8
  require_relative '../lib/cbor-pp'
9
9
 
10
+ module CDDL
11
+ class Parser
12
+ def validate_for_test(d, warn = true)
13
+ validate(d, warn) && validate(d.cbor_clone, warn)
14
+ end
15
+ end
16
+ end
10
17
 
11
18
  class TestABNF < Test::Unit::TestCase
12
19
 
@@ -68,37 +75,37 @@ HERE
68
75
  parser2 = CDDL::Parser.new "oneortwoPerson = [1*2 person ]" + person
69
76
  parser3 = CDDL::Parser.new "min2Person = [2* person ]" + person
70
77
 
71
- assert parser1.validate([])
72
- refute parser2.validate([], false)
73
- refute parser3.validate([], false)
74
- assert parser1.validate(["Methuselah", 969])
75
- assert parser2.validate(["Methuselah", 969])
76
- refute parser3.validate(["Methuselah", 969], false)
77
- assert parser1.validate(["Methuselah", 969, "Methuselah", 969])
78
- assert parser2.validate(["Methuselah", 969, "Methuselah", 969])
79
- assert parser3.validate(["Methuselah", 969, "Methuselah", 969])
80
- assert parser1.validate(["Methuselah", 969, "Methuselah", 969, "Methuselah", 969])
81
- refute parser2.validate(["Methuselah", 969, "Methuselah", 969, "Methuselah", 969], false)
82
- assert parser3.validate(["Methuselah", 969, "Methuselah", 969, "Methuselah", 969])
83
- refute parser1.validate(["Methuselah", "Methuselah", 969, 969], false)
84
- refute parser2.validate(["Methuselah", "Methuselah", 969, 969], false)
85
- refute parser3.validate(["Methuselah", "Methuselah", 969, 969], false)
86
- refute parser1.validate(["Methuselah", "Methuselah", "Methuselah", 969, 969], false)
87
- refute parser2.validate(["Methuselah", "Methuselah", "Methuselah", 969, 969], false)
88
- refute parser3.validate(["Methuselah", "Methuselah", "Methuselah", 969, 969], false)
78
+ assert parser1.validate_for_test([])
79
+ refute parser2.validate_for_test([], false)
80
+ refute parser3.validate_for_test([], false)
81
+ assert parser1.validate_for_test(["Methuselah", 969])
82
+ assert parser2.validate_for_test(["Methuselah", 969])
83
+ refute parser3.validate_for_test(["Methuselah", 969], false)
84
+ assert parser1.validate_for_test(["Methuselah", 969, "Methuselah", 969])
85
+ assert parser2.validate_for_test(["Methuselah", 969, "Methuselah", 969])
86
+ assert parser3.validate_for_test(["Methuselah", 969, "Methuselah", 969])
87
+ assert parser1.validate_for_test(["Methuselah", 969, "Methuselah", 969, "Methuselah", 969])
88
+ refute parser2.validate_for_test(["Methuselah", 969, "Methuselah", 969, "Methuselah", 969], false)
89
+ assert parser3.validate_for_test(["Methuselah", 969, "Methuselah", 969, "Methuselah", 969])
90
+ refute parser1.validate_for_test(["Methuselah", "Methuselah", 969, 969], false)
91
+ refute parser2.validate_for_test(["Methuselah", "Methuselah", 969, 969], false)
92
+ refute parser3.validate_for_test(["Methuselah", "Methuselah", 969, 969], false)
93
+ refute parser1.validate_for_test(["Methuselah", "Methuselah", "Methuselah", 969, 969], false)
94
+ refute parser2.validate_for_test(["Methuselah", "Methuselah", "Methuselah", 969, 969], false)
95
+ refute parser3.validate_for_test(["Methuselah", "Methuselah", "Methuselah", 969, 969], false)
89
96
  end
90
97
 
91
98
  def test_validate
92
99
  parser1 = CDDL::Parser.new(File.read("test-data/7071-concise.cddl"))
93
100
  g = parser1.generate
94
101
  pp g
95
- assert parser1.validate(g)
102
+ assert parser1.validate_for_test(g)
96
103
  old = g["application"]
97
104
  g["application"] = 4711
98
- refute parser1.validate(g, false)
105
+ refute parser1.validate_for_test(g, false)
99
106
  g["application"] = old
100
107
  g["reputons"] << 5712
101
- refute parser1.validate(g, false)
108
+ refute parser1.validate_for_test(g, false)
102
109
  end
103
110
 
104
111
  def test_aaaaaaa_cbor_clone_hash
@@ -136,30 +143,37 @@ HERE
136
143
  parser = CDDL::Parser.new <<HERE
137
144
  test = 1
138
145
  HERE
139
- assert parser.validate(1)
146
+ assert parser.validate_for_test(1)
147
+ end
148
+
149
+ def test_aaaaaa_validate_true
150
+ parser = CDDL::Parser.new <<HERE
151
+ test = true
152
+ HERE
153
+ assert parser.validate_for_test(true)
140
154
  end
141
155
 
142
156
  def test_validate_a
143
157
  parser = CDDL::Parser.new <<HERE
144
158
  test = [* one: 1]
145
159
  HERE
146
- assert parser.validate([])
147
- assert parser.validate([1])
148
- assert parser.validate([1, 1])
149
- refute parser.validate([1, 2], false)
150
- refute parser.validate([2, 1], false)
160
+ assert parser.validate_for_test([])
161
+ assert parser.validate_for_test([1])
162
+ assert parser.validate_for_test([1, 1])
163
+ refute parser.validate_for_test([1, 2], false)
164
+ refute parser.validate_for_test([2, 1], false)
151
165
  end
152
166
 
153
167
  def test_validate_a_string
154
168
  parser = CDDL::Parser.new <<HERE
155
169
  test = [* one: "one"]
156
170
  HERE
157
- assert parser.validate([])
158
- assert parser.validate(["one"])
159
- assert parser.validate(["one", "one"])
160
- refute parser.validate([1], false)
161
- refute parser.validate(['two'], false)
162
- refute parser.validate(["one", "two"], false)
171
+ assert parser.validate_for_test([])
172
+ assert parser.validate_for_test(["one"])
173
+ assert parser.validate_for_test(["one", "one"])
174
+ refute parser.validate_for_test([1], false)
175
+ refute parser.validate_for_test(['two'], false)
176
+ refute parser.validate_for_test(["one", "two"], false)
163
177
  end
164
178
 
165
179
 
@@ -167,12 +181,12 @@ HERE
167
181
  parser = CDDL::Parser.new <<HERE
168
182
  test = [* "two" => "one"]
169
183
  HERE
170
- assert parser.validate([])
171
- assert parser.validate(["one"])
172
- assert parser.validate(["one", "one"])
173
- refute parser.validate([1], false)
174
- refute parser.validate(['two'], false)
175
- refute parser.validate(["one", "two"], false)
184
+ assert parser.validate_for_test([])
185
+ assert parser.validate_for_test(["one"])
186
+ assert parser.validate_for_test(["one", "one"])
187
+ refute parser.validate_for_test([1], false)
188
+ refute parser.validate_for_test(['two'], false)
189
+ refute parser.validate_for_test(["one", "two"], false)
176
190
  end
177
191
 
178
192
  def test_validate_a_once
@@ -184,11 +198,11 @@ HERE
184
198
  # pp parser.rules
185
199
  # puts "APR:"
186
200
  # pp parser.apr
187
- refute parser.validate([], false)
188
- assert parser.validate([1])
189
- refute parser.validate([1, 1], false)
190
- refute parser.validate([1, 2], false)
191
- refute parser.validate([2, 1], false)
201
+ refute parser.validate_for_test([], false)
202
+ assert parser.validate_for_test([1])
203
+ refute parser.validate_for_test([1, 1], false)
204
+ refute parser.validate_for_test([1, 2], false)
205
+ refute parser.validate_for_test([2, 1], false)
192
206
  end
193
207
 
194
208
  def test_validate_unknown_key
@@ -216,10 +230,10 @@ HERE
216
230
  # puts "APR:"
217
231
  # pp parser.apr
218
232
  assert_equal [1, 2], parser.generate()
219
- refute parser.validate({}, false)
220
- refute parser.validate([], false)
221
- refute parser.validate([1], false)
222
- assert parser.validate([1, 2])
233
+ refute parser.validate_for_test({}, false)
234
+ refute parser.validate_for_test([], false)
235
+ refute parser.validate_for_test([1], false)
236
+ assert parser.validate_for_test([1, 2])
223
237
  end
224
238
 
225
239
 
@@ -233,10 +247,10 @@ HERE
233
247
  # puts "APR:"
234
248
  # pp parser.apr
235
249
  assert_equal [1, 2], parser.generate()
236
- refute parser.validate({}, false)
237
- refute parser.validate([], false)
238
- refute parser.validate([1], false)
239
- assert parser.validate([1, 2])
250
+ refute parser.validate_for_test({}, false)
251
+ refute parser.validate_for_test([], false)
252
+ refute parser.validate_for_test([1], false)
253
+ assert parser.validate_for_test([1, 2])
240
254
  end
241
255
 
242
256
 
@@ -250,12 +264,12 @@ HERE
250
264
  # pp parser.rules
251
265
  # puts "APR:"
252
266
  # pp parser.apr
253
- assert parser.validate([])
254
- assert parser.validate([1, 2])
255
- assert parser.validate([1, 2, 1, 2])
256
- refute parser.validate([1, 1, 2, 2], false)
257
- refute parser.validate([1], false)
258
- refute parser.validate([1, 2, 1], false)
267
+ assert parser.validate_for_test([])
268
+ assert parser.validate_for_test([1, 2])
269
+ assert parser.validate_for_test([1, 2, 1, 2])
270
+ refute parser.validate_for_test([1, 1, 2, 2], false)
271
+ refute parser.validate_for_test([1], false)
272
+ refute parser.validate_for_test([1, 2, 1], false)
259
273
  end
260
274
 
261
275
  def test_validate_occur1 # XXX need indirection for now
@@ -268,13 +282,13 @@ HERE
268
282
  # pp parser.rules
269
283
  # puts "APR:"
270
284
  # pp parser.apr
271
- refute parser.validate([], false)
272
- refute parser.validate([1], false)
273
- assert parser.validate([1, 2])
274
- refute parser.validate([2, 1], false)
275
- refute parser.validate([1, 1, 2, 2], false)
276
- refute parser.validate([1, 2, 1, 2], false)
277
- refute parser.validate([1, 2, 1], false)
285
+ refute parser.validate_for_test([], false)
286
+ refute parser.validate_for_test([1], false)
287
+ assert parser.validate_for_test([1, 2])
288
+ refute parser.validate_for_test([2, 1], false)
289
+ refute parser.validate_for_test([1, 1, 2, 2], false)
290
+ refute parser.validate_for_test([1, 2, 1, 2], false)
291
+ refute parser.validate_for_test([1, 2, 1], false)
278
292
  end
279
293
 
280
294
  def test_validate_occur01 # XXX need indirection for now
@@ -287,13 +301,13 @@ HERE
287
301
  # pp parser.rules
288
302
  # puts "APR:"
289
303
  # pp parser.apr
290
- assert parser.validate([])
291
- refute parser.validate([1], false)
292
- assert parser.validate([1, 2])
293
- refute parser.validate([2, 1], false)
294
- refute parser.validate([1, 1, 2, 2], false)
295
- refute parser.validate([1, 2, 1, 2], false)
296
- refute parser.validate([1, 2, 1], false)
304
+ assert parser.validate_for_test([])
305
+ refute parser.validate_for_test([1], false)
306
+ assert parser.validate_for_test([1, 2])
307
+ refute parser.validate_for_test([2, 1], false)
308
+ refute parser.validate_for_test([1, 1, 2, 2], false)
309
+ refute parser.validate_for_test([1, 2, 1, 2], false)
310
+ refute parser.validate_for_test([1, 2, 1], false)
297
311
  end
298
312
 
299
313
  def test_validate_occur1n # XXX need indirection for now
@@ -306,13 +320,13 @@ HERE
306
320
  # pp parser.rules
307
321
  # puts "APR:"
308
322
  # pp parser.apr
309
- refute parser.validate([], false)
310
- refute parser.validate([1], false)
311
- assert parser.validate([1, 2])
312
- refute parser.validate([2, 1], false)
313
- refute parser.validate([1, 1, 2, 2], false)
314
- assert parser.validate([1, 2, 1, 2])
315
- refute parser.validate([1, 2, 1], false)
323
+ refute parser.validate_for_test([], false)
324
+ refute parser.validate_for_test([1], false)
325
+ assert parser.validate_for_test([1, 2])
326
+ refute parser.validate_for_test([2, 1], false)
327
+ refute parser.validate_for_test([1, 1, 2, 2], false)
328
+ assert parser.validate_for_test([1, 2, 1, 2])
329
+ refute parser.validate_for_test([1, 2, 1], false)
316
330
  end
317
331
 
318
332
  def test_validate_occur0n # XXX need indirection for now
@@ -325,13 +339,13 @@ HERE
325
339
  # pp parser.rules
326
340
  # puts "APR:"
327
341
  # pp parser.apr
328
- assert parser.validate([])
329
- refute parser.validate([1], false)
330
- assert parser.validate([1, 2])
331
- refute parser.validate([2, 1], false)
332
- refute parser.validate([1, 1, 2, 2], false)
333
- assert parser.validate([1, 2, 1, 2])
334
- refute parser.validate([1, 2, 1], false)
342
+ assert parser.validate_for_test([])
343
+ refute parser.validate_for_test([1], false)
344
+ assert parser.validate_for_test([1, 2])
345
+ refute parser.validate_for_test([2, 1], false)
346
+ refute parser.validate_for_test([1, 1, 2, 2], false)
347
+ assert parser.validate_for_test([1, 2, 1, 2])
348
+ refute parser.validate_for_test([1, 2, 1], false)
335
349
  end
336
350
 
337
351
 
@@ -346,16 +360,16 @@ HERE
346
360
  # puts "APR:"
347
361
  # pp parser.apr
348
362
  assert_includes [[1, 2, 1, 2], [1, 2, 1, 2, 1, 2]], parser.generate
349
- refute parser.validate([], false)
350
- refute parser.validate([1], false)
351
- refute parser.validate([1, 2], false)
352
- refute parser.validate([2, 1], false)
353
- assert parser.validate([1, 2, 1, 2])
354
- assert parser.validate([1, 2, 1, 2, 1, 2])
355
- refute parser.validate([1, 2, 1, 2, 1, 2, 1, 2], false)
356
- refute parser.validate([1, 1, 2, 2, 2], false)
357
- refute parser.validate([1, 1, 1, 2, 2, 2], false)
358
- refute parser.validate([1, 2, 1], false)
363
+ refute parser.validate_for_test([], false)
364
+ refute parser.validate_for_test([1], false)
365
+ refute parser.validate_for_test([1, 2], false)
366
+ refute parser.validate_for_test([2, 1], false)
367
+ assert parser.validate_for_test([1, 2, 1, 2])
368
+ assert parser.validate_for_test([1, 2, 1, 2, 1, 2])
369
+ refute parser.validate_for_test([1, 2, 1, 2, 1, 2, 1, 2], false)
370
+ refute parser.validate_for_test([1, 1, 2, 2, 2], false)
371
+ refute parser.validate_for_test([1, 1, 1, 2, 2, 2], false)
372
+ refute parser.validate_for_test([1, 2, 1], false)
359
373
  end
360
374
 
361
375
 
@@ -370,16 +384,16 @@ HERE
370
384
  # puts "APR:"
371
385
  # pp parser.apr
372
386
  assert_includes [[1, 2, 1, 2], [1, 2, 1, 2, 1, 2]], parser.generate
373
- refute parser.validate([], false)
374
- refute parser.validate([1], false)
375
- refute parser.validate([1, 2], false)
376
- refute parser.validate([2, 1], false)
377
- refute parser.validate([1, 2, 1, 2], false) # !!! PEG semantics gets us here
378
- assert parser.validate([1, 2, 1, 2, 1, 2])
379
- refute parser.validate([1, 2, 1, 2, 1, 2, 1, 2], false)
380
- refute parser.validate([1, 1, 2, 2, 2], false)
381
- refute parser.validate([1, 1, 1, 2, 2, 2], false)
382
- refute parser.validate([1, 2, 1], false)
387
+ refute parser.validate_for_test([], false)
388
+ refute parser.validate_for_test([1], false)
389
+ refute parser.validate_for_test([1, 2], false)
390
+ refute parser.validate_for_test([2, 1], false)
391
+ refute parser.validate_for_test([1, 2, 1, 2], false) # !!! PEG semantics gets us here
392
+ assert parser.validate_for_test([1, 2, 1, 2, 1, 2])
393
+ refute parser.validate_for_test([1, 2, 1, 2, 1, 2, 1, 2], false)
394
+ refute parser.validate_for_test([1, 1, 2, 2, 2], false)
395
+ refute parser.validate_for_test([1, 1, 1, 2, 2, 2], false)
396
+ refute parser.validate_for_test([1, 2, 1], false)
383
397
  end
384
398
 
385
399
 
@@ -422,7 +436,7 @@ HERE
422
436
  g = parser.generate
423
437
  # pp g
424
438
  assert expected1 == g || expected2 == g
425
- assert parser.validate(g)
439
+ assert parser.validate_for_test(g)
426
440
  }
427
441
  end
428
442
 
@@ -438,7 +452,7 @@ HERE
438
452
  # pp ["tasa", g]
439
453
  bar = g['bar']
440
454
  assert bar == true || Integer(bar)
441
- assert parser.validate(g)
455
+ assert parser.validate_for_test(g)
442
456
  }
443
457
  end
444
458
 
@@ -454,9 +468,9 @@ HERE
454
468
  # pp ["tasag", g]
455
469
  bar = g['bar']
456
470
  assert bar == true || Integer(bar)
457
- assert parser.validate(g)
458
- refute parser.validate(g.merge(foo: 3), false)
459
- refute parser.validate(g.merge(bar: "baz"), false)
471
+ assert parser.validate_for_test(g)
472
+ refute parser.validate_for_test(g.merge(foo: 3), false)
473
+ refute parser.validate_for_test(g.merge(bar: "baz"), false)
460
474
  }
461
475
  end
462
476
 
@@ -467,7 +481,7 @@ test = {
467
481
  }
468
482
  HERE
469
483
  # pp parser.rules
470
- parser.validate({})
484
+ parser.validate_for_test({})
471
485
  10.times {
472
486
  g = parser.generate
473
487
  # pp ["tasag", g]
@@ -475,9 +489,9 @@ HERE
475
489
  bar = g['bar']
476
490
  fail "GGG #{g.inspect}" unless bar
477
491
  assert bar == true || Integer(bar)
478
- assert parser.validate(g)
479
- refute parser.validate(g.merge(foo: 3), false)
480
- refute parser.validate(g.merge(bar: "baz"), false)
492
+ assert parser.validate_for_test(g)
493
+ refute parser.validate_for_test(g.merge(foo: 3), false)
494
+ refute parser.validate_for_test(g.merge(bar: "baz"), false)
481
495
  end
482
496
  }
483
497
  end
@@ -506,7 +520,7 @@ HERE
506
520
  assert_equal g.size, 2
507
521
  assert [1, 2].include? g[0]
508
522
  assert [3, 4].include? g[1]
509
- assert parser.validate(g)
523
+ assert parser.validate_for_test(g)
510
524
  }
511
525
  end
512
526
 
@@ -527,7 +541,7 @@ HERE
527
541
  assert [1, 2].include? g[0]
528
542
  assert [5, 6].include? g[1]
529
543
  assert [3, 4].include? g[2]
530
- assert parser.validate(g)
544
+ assert parser.validate_for_test(g)
531
545
  }
532
546
  end
533
547
 
@@ -553,15 +567,15 @@ HERE
553
567
  assert [3, 4].include? g[2]
554
568
  assert [5, 6, 9].include? g[3]
555
569
  assert_equal g[4], 10 if g[3] == 9
556
- assert parser.validate(g)
570
+ assert parser.validate_for_test(g)
557
571
  }
558
- refute parser.validate([1, 5, 8, 9], false)
559
- refute parser.validate([1, 5, 3], false)
560
- assert parser.validate([1, 5, 4, 5])
561
- refute parser.validate([1, 5, 4, 9], false)
562
- assert parser.validate([1, 5, 4, 9, 10])
563
- refute parser.validate([1, 5, 4, 3], false)
564
- refute parser.validate([1, 5, 4, 9, 10, 3], false)
572
+ refute parser.validate_for_test([1, 5, 8, 9], false)
573
+ refute parser.validate_for_test([1, 5, 3], false)
574
+ assert parser.validate_for_test([1, 5, 4, 5])
575
+ refute parser.validate_for_test([1, 5, 4, 9], false)
576
+ assert parser.validate_for_test([1, 5, 4, 9, 10])
577
+ refute parser.validate_for_test([1, 5, 4, 3], false)
578
+ refute parser.validate_for_test([1, 5, 4, 9, 10, 3], false)
565
579
  end
566
580
 
567
581
  def test_validate_number_key
@@ -574,7 +588,7 @@ HERE
574
588
  # pp parser.rules
575
589
  expected = [{1 => 2}, {3.0 => "a"}, {'foo' => "bar"}]
576
590
  assert_equal expected, parser.generate
577
- assert parser.validate(expected)
591
+ assert parser.validate_for_test(expected)
578
592
  end
579
593
 
580
594
  def test_validate_json_float
@@ -591,12 +605,12 @@ beer = 3.14 / 6.28
591
605
  HERE
592
606
  # pp parser.rules
593
607
  # pp parser.generate
594
- refute parser.validate({}, false)
595
- assert parser.validate({"f16" => 1.5, "foo" => 1, "f64" => 1.1, "bar" => 3.14})
596
- assert parser.validate({"f16" => 1.5, "foo" => 1, "f64" => 1.1, "bar" => 6.28})
597
- refute parser.validate({"f16" => 1.5, "foo" => 1, "f64" => 1.1, "bar" => 3.15}, false)
598
- assert parser.validate({"f16" => 1.5, "foo" => 1, "f64" => 1.1})
599
- refute parser.validate({"f16" => 1, "foo" => 1, "f64" => 1.1}, false)
608
+ refute parser.validate_for_test({}, false)
609
+ assert parser.validate_for_test({"f16" => 1.5, "foo" => 1, "f64" => 1.1, "bar" => 3.14})
610
+ assert parser.validate_for_test({"f16" => 1.5, "foo" => 1, "f64" => 1.1, "bar" => 6.28})
611
+ refute parser.validate_for_test({"f16" => 1.5, "foo" => 1, "f64" => 1.1, "bar" => 3.15}, false)
612
+ assert parser.validate_for_test({"f16" => 1.5, "foo" => 1, "f64" => 1.1})
613
+ refute parser.validate_for_test({"f16" => 1, "foo" => 1, "f64" => 1.1}, false)
600
614
  end
601
615
 
602
616
  def test_validate_tags
@@ -612,13 +626,13 @@ solid = tstr
612
626
  HERE
613
627
  # pp parser.rules
614
628
  # pp parser.generate
615
- refute parser.validate({}, false)
616
- refute parser.validate(CBOR::Tagged.new(55799, CBOR::Tagged.new(997, 1)), false)
617
- refute parser.validate(CBOR::Tagged.new(55799, CBOR::Tagged.new(998, 1)), false)
618
- assert parser.validate(CBOR::Tagged.new(55799, CBOR::Tagged.new(998, "cornflakes")))
619
- assert parser.validate(CBOR::Tagged.new(55799, CBOR::Tagged.new(999, [0, "barley"])))
620
- refute parser.validate(CBOR::Tagged.new(55799, CBOR::Tagged.new(999, [0, 1])), false)
621
- refute parser.validate(CBOR::Tagged.new(55799, CBOR::Tagged.new(999, [0, "barley", 1])), false)
629
+ refute parser.validate_for_test({}, false)
630
+ refute parser.validate_for_test(CBOR::Tagged.new(55799, CBOR::Tagged.new(997, 1)), false)
631
+ refute parser.validate_for_test(CBOR::Tagged.new(55799, CBOR::Tagged.new(998, 1)), false)
632
+ assert parser.validate_for_test(CBOR::Tagged.new(55799, CBOR::Tagged.new(998, "cornflakes")))
633
+ assert parser.validate_for_test(CBOR::Tagged.new(55799, CBOR::Tagged.new(999, [0, "barley"])))
634
+ refute parser.validate_for_test(CBOR::Tagged.new(55799, CBOR::Tagged.new(999, [0, 1])), false)
635
+ refute parser.validate_for_test(CBOR::Tagged.new(55799, CBOR::Tagged.new(999, [0, "barley", 1])), false)
622
636
  end
623
637
 
624
638
  def test_nested_group_many1
@@ -653,11 +667,11 @@ HERE
653
667
  10.times {
654
668
  assert parser.generate.between?(0, 12)
655
669
  }
656
- assert parser.validate(0)
657
- assert parser.validate(7)
658
- assert parser.validate(12)
659
- refute parser.validate(-1, false)
660
- refute parser.validate(13, false)
670
+ assert parser.validate_for_test(0)
671
+ assert parser.validate_for_test(7)
672
+ assert parser.validate_for_test(12)
673
+ refute parser.validate_for_test(-1, false)
674
+ refute parser.validate_for_test(13, false)
661
675
  end
662
676
 
663
677
  def test_range_integer_excl
@@ -667,12 +681,12 @@ HERE
667
681
  10.times {
668
682
  assert parser.generate.between?(0, 12)
669
683
  }
670
- assert parser.validate(0)
671
- assert parser.validate(7)
672
- refute parser.validate(7.0, false)
673
- assert parser.validate(12)
674
- refute parser.validate(-1, false)
675
- refute parser.validate(13, false)
684
+ assert parser.validate_for_test(0)
685
+ assert parser.validate_for_test(7)
686
+ refute parser.validate_for_test(7.0, false)
687
+ assert parser.validate_for_test(12)
688
+ refute parser.validate_for_test(-1, false)
689
+ refute parser.validate_for_test(13, false)
676
690
  end
677
691
 
678
692
  def test_range_float
@@ -684,14 +698,14 @@ HERE
684
698
  10.times {
685
699
  assert parser.generate.between?(0.5, 12.5)
686
700
  }
687
- refute parser.validate(0.0, false)
688
- assert parser.validate(0.5)
689
- assert parser.validate(7.0)
690
- refute parser.validate(7, false)
691
- assert parser.validate(12.0)
692
- assert parser.validate(12.5)
693
- refute parser.validate(-1.0, false)
694
- refute parser.validate(13.0, false)
701
+ refute parser.validate_for_test(0.0, false)
702
+ assert parser.validate_for_test(0.5)
703
+ assert parser.validate_for_test(7.0)
704
+ refute parser.validate_for_test(7, false)
705
+ assert parser.validate_for_test(12.0)
706
+ assert parser.validate_for_test(12.5)
707
+ refute parser.validate_for_test(-1.0, false)
708
+ refute parser.validate_for_test(13.0, false)
695
709
  end
696
710
 
697
711
  def test_enum
@@ -852,7 +866,7 @@ HERE
852
866
  assert String === gen
853
867
  assert gen.bytesize == 3
854
868
  pp gen
855
- assert parser.validate(gen)
869
+ assert parser.validate_for_test(gen)
856
870
  end
857
871
 
858
872
 
@@ -866,11 +880,11 @@ HERE
866
880
  assert Integer === gen
867
881
  assert gen < 2**24
868
882
  assert gen >= 0
869
- assert parser.validate(gen)
883
+ assert parser.validate_for_test(gen)
870
884
  end
871
- refute parser.validate(-1, false)
872
- refute parser.validate(2**24, false)
873
- refute parser.validate(2**218, false)
885
+ refute parser.validate_for_test(-1, false)
886
+ refute parser.validate_for_test(2**24, false)
887
+ refute parser.validate_for_test(2**218, false)
874
888
  end
875
889
 
876
890
  def test_bits_annotation
@@ -881,11 +895,11 @@ HERE
881
895
  gen = parser.generate
882
896
  assert String === gen
883
897
  pp gen # should mostly be "*"
884
- assert parser.validate(gen)
885
- assert parser.validate("\x08".b)
886
- refute parser.validate("\x01".b, false)
887
- refute parser.validate("\x10".b, false)
888
- refute parser.validate("\x40".b, false)
898
+ assert parser.validate_for_test(gen)
899
+ assert parser.validate_for_test("\x08".b)
900
+ refute parser.validate_for_test("\x01".b, false)
901
+ refute parser.validate_for_test("\x10".b, false)
902
+ refute parser.validate_for_test("\x40".b, false)
889
903
  end
890
904
 
891
905
  def test_bits_annotation_on_uint
@@ -896,11 +910,11 @@ HERE
896
910
  gen = parser.generate
897
911
  assert Integer === gen
898
912
  pp gen # should mostly be 42
899
- assert parser.validate(gen)
900
- assert parser.validate(1 << 3)
901
- refute parser.validate(1 << 0, false)
902
- refute parser.validate(1 << 4, false)
903
- refute parser.validate(1 << 6, false)
913
+ assert parser.validate_for_test(gen)
914
+ assert parser.validate_for_test(1 << 3)
915
+ refute parser.validate_for_test(1 << 0, false)
916
+ refute parser.validate_for_test(1 << 4, false)
917
+ refute parser.validate_for_test(1 << 6, false)
904
918
  end
905
919
 
906
920
  def test_regexp_annotation
@@ -912,12 +926,12 @@ HERE
912
926
  gen = parser.generate
913
927
  assert String === gen
914
928
  pp gen
915
- assert parser.validate(gen)
929
+ assert parser.validate_for_test(gen)
916
930
  end
917
- assert parser.validate("reg")
918
- assert parser.validate("regfoo")
919
- refute parser.validate("foo", false)
920
- refute parser.validate("re", false)
931
+ assert parser.validate_for_test("reg")
932
+ assert parser.validate_for_test("regfoo")
933
+ refute parser.validate_for_test("foo", false)
934
+ refute parser.validate_for_test("re", false)
921
935
  end
922
936
 
923
937
  def test_cbor_annotation1
@@ -929,12 +943,12 @@ HERE
929
943
  gen = parser.generate
930
944
  assert_equal "\x01", gen
931
945
  pp gen
932
- assert parser.validate(gen)
946
+ assert parser.validate_for_test(gen)
933
947
  end
934
- assert parser.validate("\x01".b)
935
- assert parser.validate("\x18\x01".b)
936
- refute parser.validate("1", false)
937
- refute parser.validate("\x00".b, false)
948
+ assert parser.validate_for_test("\x01".b)
949
+ assert parser.validate_for_test("\x18\x01".b)
950
+ refute parser.validate_for_test("1", false)
951
+ refute parser.validate_for_test("\x00".b, false)
938
952
  end
939
953
 
940
954
  def test_cbor_annotation_uint
@@ -947,13 +961,13 @@ HERE
947
961
  assert String === gen
948
962
  assert_equal 0, gen.getbyte(0) >> 5
949
963
  pp ["CAU", gen]
950
- assert parser.validate(gen)
964
+ assert parser.validate_for_test(gen)
951
965
  end
952
- assert parser.validate("\x01".b)
953
- assert parser.validate("\x00".b)
954
- assert parser.validate("\x18\x01".b)
955
- refute parser.validate("1", false)
956
- refute parser.validate("\x00\x00".b, false)
966
+ assert parser.validate_for_test("\x01".b)
967
+ assert parser.validate_for_test("\x00".b)
968
+ assert parser.validate_for_test("\x18\x01".b)
969
+ refute parser.validate_for_test("1", false)
970
+ refute parser.validate_for_test("\x00\x00".b, false)
957
971
  end
958
972
 
959
973
  def test_cborseq_annotation_uint
@@ -976,12 +990,12 @@ HERE
976
990
  assert String === gen
977
991
  pp ["CAUA", gen]
978
992
  assert_equal 0, gen.getbyte(0) >> 5 unless gen == ''
979
- assert parser.validate(gen)
993
+ assert parser.validate_for_test(gen)
980
994
  end
981
- assert parser.validate("\x01".b)
982
- assert parser.validate("\x18\x01".b)
983
- refute parser.validate("1", false)
984
- refute parser.validate("\x00\x00\x00\x00\x00".b, false)
995
+ assert parser.validate_for_test("\x01".b)
996
+ assert parser.validate_for_test("\x18\x01".b)
997
+ refute parser.validate_for_test("1", false)
998
+ refute parser.validate_for_test("\x00\x00\x00\x00\x00".b, false)
985
999
  end
986
1000
 
987
1001
  def test_and_annotation
@@ -994,11 +1008,11 @@ HERE
994
1008
  gen = parser.generate
995
1009
  assert Integer === gen
996
1010
  pp ["CAA", gen]
997
- assert parser.validate(gen)
1011
+ assert parser.validate_for_test(gen)
998
1012
  end
999
- assert parser.validate(1)
1000
- refute parser.validate(-1, false)
1001
- refute parser.validate(0, false)
1013
+ assert parser.validate_for_test(1)
1014
+ refute parser.validate_for_test(-1, false)
1015
+ refute parser.validate_for_test(0, false)
1002
1016
  end
1003
1017
 
1004
1018
  def test_within_annotation
@@ -1011,11 +1025,11 @@ HERE
1011
1025
  gen = parser.generate
1012
1026
  assert Integer === gen
1013
1027
  pp ["CWA", gen] # should also generate some warnings
1014
- assert parser.validate(gen)
1028
+ assert parser.validate_for_test(gen)
1015
1029
  end
1016
- assert parser.validate(1)
1017
- refute parser.validate(-1, false)
1018
- refute parser.validate(0, false)
1030
+ assert parser.validate_for_test(1)
1031
+ refute parser.validate_for_test(-1, false)
1032
+ refute parser.validate_for_test(0, false)
1019
1033
  end
1020
1034
 
1021
1035
  def test_dcaf
@@ -1132,7 +1146,7 @@ HERE
1132
1146
  10.times {
1133
1147
  g = parser.generate
1134
1148
  # pp ["recurse-test1", g]
1135
- assert parser.validate(g)
1149
+ assert parser.validate_for_test(g)
1136
1150
  }
1137
1151
  end
1138
1152
 
@@ -1158,7 +1172,7 @@ HERE
1158
1172
  10.times {
1159
1173
  g = parser.generate
1160
1174
  # pp ["non-recurse-test", g]
1161
- assert parser.validate(g)
1175
+ assert parser.validate_for_test(g)
1162
1176
  }
1163
1177
  end
1164
1178
 
@@ -1174,7 +1188,7 @@ HERE
1174
1188
  10.times {
1175
1189
  g = parser.generate
1176
1190
  pp ["recurse-group-test", g]
1177
- assert parser.validate(g)
1191
+ assert parser.validate_for_test(g)
1178
1192
  }
1179
1193
  end
1180
1194
 
@@ -1192,8 +1206,8 @@ HERE
1192
1206
  10.times {
1193
1207
  g = parser.generate
1194
1208
  # pp ["recurse-group-test2", g]
1195
- assert parser.validate(g)
1196
- refute parser.validate(g.merge(baz: 3), false)
1209
+ assert parser.validate_for_test(g)
1210
+ refute parser.validate_for_test(g.merge(baz: 3), false)
1197
1211
  }
1198
1212
  end
1199
1213
 
@@ -1219,7 +1233,7 @@ HERE
1219
1233
  # puts "empty_group RULES:"
1220
1234
  # pp parser.rules
1221
1235
  assert_equal({}, parser.generate)
1222
- assert parser.validate({})
1236
+ assert parser.validate_for_test({})
1223
1237
  end
1224
1238
 
1225
1239
 
@@ -1234,7 +1248,7 @@ HERE
1234
1248
  # puts "empty_group_sp RULES:"
1235
1249
  # pp parser.rules
1236
1250
  assert_equal({}, parser.generate)
1237
- assert parser.validate({})
1251
+ assert parser.validate_for_test({})
1238
1252
  end
1239
1253
 
1240
1254
 
@@ -1251,7 +1265,7 @@ HERE
1251
1265
  # puts "empty_group_sp RULES:"
1252
1266
  # pp parser.rules
1253
1267
  assert_equal({}, parser.generate)
1254
- assert parser.validate({})
1268
+ assert parser.validate_for_test({})
1255
1269
  end
1256
1270
 
1257
1271
  def test_simple_group_augmented
@@ -1272,9 +1286,9 @@ HERE
1272
1286
  v[parser.generate["abs"]] = true
1273
1287
  end
1274
1288
  assert_equal({3 => true, -3 => true, 5 => true}, v)
1275
- assert parser.validate({"abs" => 3})
1276
- assert parser.validate({"abs" => 5})
1277
- assert parser.validate({"abs" => -3})
1289
+ assert parser.validate_for_test({"abs" => 3})
1290
+ assert parser.validate_for_test({"abs" => 5})
1291
+ assert parser.validate_for_test({"abs" => -3})
1278
1292
  end
1279
1293
 
1280
1294
  def test_simple_group_augmented_uninitialized
@@ -1294,8 +1308,8 @@ HERE
1294
1308
  v[parser.generate["abs"]] = true
1295
1309
  end
1296
1310
  assert_equal({3 => true, -3 => true}, v)
1297
- assert parser.validate({"abs" => 3})
1298
- assert parser.validate({"abs" => -3})
1311
+ assert parser.validate_for_test({"abs" => 3})
1312
+ assert parser.validate_for_test({"abs" => -3})
1299
1313
  end
1300
1314
 
1301
1315
 
@@ -1316,8 +1330,8 @@ HERE
1316
1330
  v[parser.generate["abs"]] = true
1317
1331
  end
1318
1332
  assert_equal({3 => true, -3 => true}, v)
1319
- assert parser.validate({"abs" => 3})
1320
- assert parser.validate({"abs" => -3})
1333
+ assert parser.validate_for_test({"abs" => 3})
1334
+ assert parser.validate_for_test({"abs" => -3})
1321
1335
  end
1322
1336
 
1323
1337
 
@@ -1356,7 +1370,7 @@ HERE
1356
1370
  # puts "simple_type_augmented RULES:"
1357
1371
  # pp parser.rules
1358
1372
  assert_equal parser.generate, {"abs" => 17}
1359
- assert parser.validate({"abs" => 17})
1373
+ assert parser.validate_for_test({"abs" => 17})
1360
1374
  end
1361
1375
 
1362
1376
 
@@ -1369,7 +1383,7 @@ HERE
1369
1383
  # puts "simple_type_augmented RULES:"
1370
1384
  # pp parser.rules
1371
1385
  assert_equal parser.generate, {"a" => 1}
1372
- assert parser.validate({"a" => 1})
1386
+ assert parser.validate_for_test({"a" => 1})
1373
1387
  end
1374
1388
 
1375
1389
 
@@ -1382,7 +1396,7 @@ HERE
1382
1396
  # puts "simple_type_augmented RULES:"
1383
1397
  # pp parser.rules
1384
1398
  assert_equal parser.generate, {}
1385
- assert parser.validate({})
1399
+ assert parser.validate_for_test({})
1386
1400
  end
1387
1401
 
1388
1402
  def test_aaa_validate_more_socket_in_star
@@ -1407,10 +1421,10 @@ HERE
1407
1421
  # pp parser.rules
1408
1422
  10.times do
1409
1423
  g = parser.generate
1410
- # pp g
1411
- assert parser.validate(g)
1424
+ pp g
1425
+ assert parser.validate_for_test(g)
1412
1426
  end
1413
- assert parser.validate({"seq" => 1, "ack" => 2})
1427
+ assert parser.validate_for_test({"seq" => 1, "ack" => 2})
1414
1428
  end
1415
1429
 
1416
1430
 
@@ -1431,8 +1445,8 @@ HERE
1431
1445
  v[parser.generate["abs"]] = true
1432
1446
  end
1433
1447
  assert_equal({3 => true, -3 => true}, v)
1434
- assert parser.validate({"abs" => 3})
1435
- assert parser.validate({"abs" => -3})
1448
+ assert parser.validate_for_test({"abs" => 3})
1449
+ assert parser.validate_for_test({"abs" => -3})
1436
1450
  end
1437
1451
 
1438
1452
 
@@ -1444,7 +1458,7 @@ c = ()
1444
1458
  HERE
1445
1459
  # XXX: Pending
1446
1460
  # assert_equal({}, parser.generate)
1447
- # assert parser.validate({})
1461
+ # assert parser.validate_for_test({})
1448
1462
  end
1449
1463
 
1450
1464
  def test_group_occur
@@ -1462,7 +1476,7 @@ HERE
1462
1476
  # puts "empty_group_sp RULES:"
1463
1477
  pp parser.rules
1464
1478
  assert_equal parser.rules, parser2.rules
1465
- # assert parser.validate({})
1479
+ # assert parser.validate_for_test({})
1466
1480
  10.times {
1467
1481
  g = parser2.generate
1468
1482
  # pp ["group-occur", g]
@@ -1470,8 +1484,8 @@ HERE
1470
1484
  g.each_slice(2) do |sl|
1471
1485
  assert_equal sl, [1, 2]
1472
1486
  end
1473
- assert parser2.validate(g)
1474
- refute parser2.validate(g << 1, false)
1487
+ assert parser2.validate_for_test(g)
1488
+ refute parser2.validate_for_test(g << 1, false)
1475
1489
  }
1476
1490
  end
1477
1491
 
@@ -1529,8 +1543,9 @@ HERE
1529
1543
  a = {a: nil}
1530
1544
  HERE
1531
1545
  g = parser.generate
1532
- assert parser.validate(g)
1546
+ assert parser.validate_for_test(g)
1533
1547
  assert_equal g, {"a" => nil}
1548
+ assert_equal g.cbor_clone, {"a" => nil}
1534
1549
  end
1535
1550
 
1536
1551
  def test_extractor_ignores_map
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cddl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.2
4
+ version: 0.7.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carsten Bormann
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-11 00:00:00.000000000 Z
11
+ date: 2016-04-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cbor-diag
@@ -104,6 +104,7 @@ files:
104
104
  - test-data/dcaf.cddl
105
105
  - test-data/dcaf1.cddl
106
106
  - test-data/extractor-demo.cddl
107
+ - test-data/grasp-01-extract.cddl
107
108
  - test-data/grasp-01-test.cddl
108
109
  - test-data/grasp-01.cddl
109
110
  - test-data/grasp-v1.cddl
@@ -122,6 +123,7 @@ files:
122
123
  - test-data/wrong1a.cddl
123
124
  - test-data/wrong2.cddl
124
125
  - test-data/wrong2a.cddl
126
+ - test-data/xmlmig.cddl
125
127
  - test/test-cddl.rb
126
128
  homepage: http://github.com/cabo/cddl
127
129
  licenses: