@@ -278,3 +278,173 @@ impl<'a, T: AsRef<[u8]> + ?Sized> Parseable<NlaBuffer<&'a T>> for Options {
278
278
} )
279
279
}
280
280
}
281
+
282
+ #[ cfg( test) ]
283
+ mod test {
284
+ use super :: * ;
285
+ use netlink_packet_utils:: Emitable ;
286
+
287
+ #[ test]
288
+ fn parse_back_version_zero ( ) {
289
+ let example = Version :: new ( 0 ) ;
290
+ let mut buffer = vec ! [ 0 ; example. buffer_len( ) ] ;
291
+ example. emit ( & mut buffer) ;
292
+ let parsed =
293
+ Version :: parse ( & NlaBuffer :: new_checked ( & buffer) . unwrap ( ) ) . unwrap ( ) ;
294
+ assert_eq ! ( example, parsed) ;
295
+ }
296
+
297
+ #[ test]
298
+ fn parse_back_version_example ( ) {
299
+ let example = Version :: new ( 0x12 ) ;
300
+ let mut buffer = vec ! [ 0 ; example. buffer_len( ) ] ;
301
+ example. emit ( & mut buffer) ;
302
+ let parsed =
303
+ Version :: parse ( & NlaBuffer :: new_checked ( & buffer) . unwrap ( ) ) . unwrap ( ) ;
304
+ assert_eq ! ( example, parsed) ;
305
+ }
306
+
307
+ #[ test]
308
+ fn parse_back_index_zero ( ) {
309
+ let example = Index :: new ( 0 ) ;
310
+ let mut buffer = vec ! [ 0 ; example. buffer_len( ) ] ;
311
+ example. emit ( & mut buffer) ;
312
+ let parsed =
313
+ Index :: parse ( & NlaBuffer :: new_checked ( & buffer) . unwrap ( ) ) . unwrap ( ) ;
314
+ assert_eq ! ( example, parsed) ;
315
+ }
316
+
317
+ #[ test]
318
+ fn parse_back_index_example ( ) {
319
+ let example = Index :: new ( 0x12345678 ) ;
320
+ let mut buffer = vec ! [ 0 ; example. buffer_len( ) ] ;
321
+ example. emit ( & mut buffer) ;
322
+ let parsed =
323
+ Index :: parse ( & NlaBuffer :: new_checked ( & buffer) . unwrap ( ) ) . unwrap ( ) ;
324
+ assert_eq ! ( example, parsed) ;
325
+ }
326
+
327
+ #[ test]
328
+ fn parse_back_direction_ingress ( ) {
329
+ let example = Direction :: Ingress ;
330
+ let mut buffer = vec ! [ 0 ; example. buffer_len( ) ] ;
331
+ example. emit ( & mut buffer) ;
332
+ let parsed =
333
+ Direction :: parse ( & NlaBuffer :: new_checked ( & buffer) . unwrap ( ) )
334
+ . unwrap ( ) ;
335
+ assert_eq ! ( example, parsed) ;
336
+ }
337
+
338
+ #[ test]
339
+ fn parse_back_direction_egress ( ) {
340
+ let example = Direction :: Egress ;
341
+ let mut buffer = vec ! [ 0 ; example. buffer_len( ) ] ;
342
+ example. emit ( & mut buffer) ;
343
+ let parsed =
344
+ Direction :: parse ( & NlaBuffer :: new_checked ( & buffer) . unwrap ( ) )
345
+ . unwrap ( ) ;
346
+ assert_eq ! ( example, parsed) ;
347
+ }
348
+
349
+ #[ test]
350
+ fn parse_back_hwid_zero ( ) {
351
+ let example = ErspanHwid :: new ( 0 ) ;
352
+ let mut buffer = vec ! [ 0 ; example. buffer_len( ) ] ;
353
+ example. emit ( & mut buffer) ;
354
+ let parsed =
355
+ ErspanHwid :: parse ( & NlaBuffer :: new_checked ( & buffer) . unwrap ( ) )
356
+ . unwrap ( ) ;
357
+ assert_eq ! ( example, parsed) ;
358
+ }
359
+
360
+ #[ test]
361
+ fn parse_back_hwid_example ( ) {
362
+ let example = ErspanHwid :: new ( 0x12 ) ;
363
+ let mut buffer = vec ! [ 0 ; example. buffer_len( ) ] ;
364
+ example. emit ( & mut buffer) ;
365
+ let parsed =
366
+ ErspanHwid :: parse ( & NlaBuffer :: new_checked ( & buffer) . unwrap ( ) )
367
+ . unwrap ( ) ;
368
+ assert_eq ! ( example, parsed) ;
369
+ }
370
+
371
+ #[ test]
372
+ fn parse_back_options_version_zero ( ) {
373
+ let example = Options :: Version ( Version :: new ( 0 ) ) ;
374
+ let mut buffer = vec ! [ 0 ; example. buffer_len( ) ] ;
375
+ example. emit ( & mut buffer) ;
376
+ let parsed =
377
+ Options :: parse ( & NlaBuffer :: new_checked ( & buffer) . unwrap ( ) ) . unwrap ( ) ;
378
+ assert_eq ! ( example, parsed) ;
379
+ }
380
+
381
+ #[ test]
382
+ fn parse_back_options_version_example ( ) {
383
+ let example = Options :: Version ( Version :: new ( 0x12 ) ) ;
384
+ let mut buffer = vec ! [ 0 ; example. buffer_len( ) ] ;
385
+ example. emit ( & mut buffer) ;
386
+ let parsed =
387
+ Options :: parse ( & NlaBuffer :: new_checked ( & buffer) . unwrap ( ) ) . unwrap ( ) ;
388
+ assert_eq ! ( example, parsed) ;
389
+ }
390
+
391
+ #[ test]
392
+ fn parse_back_options_index_zero ( ) {
393
+ let example = Options :: Index ( Index :: new ( 0 ) ) ;
394
+ let mut buffer = vec ! [ 0 ; example. buffer_len( ) ] ;
395
+ example. emit ( & mut buffer) ;
396
+ let parsed =
397
+ Options :: parse ( & NlaBuffer :: new_checked ( & buffer) . unwrap ( ) ) . unwrap ( ) ;
398
+ assert_eq ! ( example, parsed) ;
399
+ }
400
+
401
+ #[ test]
402
+ fn parse_back_options_index_example ( ) {
403
+ let example = Options :: Index ( Index :: new ( 0x12345678 ) ) ;
404
+ let mut buffer = vec ! [ 0 ; example. buffer_len( ) ] ;
405
+ example. emit ( & mut buffer) ;
406
+ let parsed =
407
+ Options :: parse ( & NlaBuffer :: new_checked ( & buffer) . unwrap ( ) ) . unwrap ( ) ;
408
+ assert_eq ! ( example, parsed) ;
409
+ }
410
+
411
+ #[ test]
412
+ fn parse_back_options_direction_ingress ( ) {
413
+ let example = Options :: Direction ( Direction :: Ingress ) ;
414
+ let mut buffer = vec ! [ 0 ; example. buffer_len( ) ] ;
415
+ example. emit ( & mut buffer) ;
416
+ let parsed =
417
+ Options :: parse ( & NlaBuffer :: new_checked ( & buffer) . unwrap ( ) ) . unwrap ( ) ;
418
+ assert_eq ! ( example, parsed) ;
419
+ }
420
+
421
+ #[ test]
422
+ fn parse_back_options_direction_egress ( ) {
423
+ let example = Options :: Direction ( Direction :: Egress ) ;
424
+ let mut buffer = vec ! [ 0 ; example. buffer_len( ) ] ;
425
+ example. emit ( & mut buffer) ;
426
+ let parsed =
427
+ Options :: parse ( & NlaBuffer :: new_checked ( & buffer) . unwrap ( ) ) . unwrap ( ) ;
428
+ assert_eq ! ( example, parsed) ;
429
+ }
430
+
431
+ #[ test]
432
+ fn parse_back_options_hwid_zero ( ) {
433
+ let example = Options :: Hwid ( ErspanHwid :: new ( 0 ) ) ;
434
+ let mut buffer = vec ! [ 0 ; example. buffer_len( ) ] ;
435
+ example. emit ( & mut buffer) ;
436
+ let parsed =
437
+ Options :: parse ( & NlaBuffer :: new_checked ( & buffer) . unwrap ( ) ) . unwrap ( ) ;
438
+ assert_eq ! ( example, parsed) ;
439
+ }
440
+
441
+ #[ test]
442
+ fn parse_back_options_hwid_example ( ) {
443
+ let example = Options :: Hwid ( ErspanHwid :: new ( 0x12 ) ) ;
444
+ let mut buffer = vec ! [ 0 ; example. buffer_len( ) ] ;
445
+ example. emit ( & mut buffer) ;
446
+ let parsed =
447
+ Options :: parse ( & NlaBuffer :: new_checked ( & buffer) . unwrap ( ) ) . unwrap ( ) ;
448
+ assert_eq ! ( example, parsed) ;
449
+ }
450
+ }
0 commit comments