cddl 0.7.2 → 0.7.3

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.
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: