@@ -345,7 +345,6 @@ impl<'a> TryRead<'a, FooterMode> for Frame<'a> {
345
345
if header. has_security ( ) {
346
346
return Err ( DecodeError :: SecurityEnabled ) ?;
347
347
}
348
-
349
348
let ( payload, footer) = match mode {
350
349
FooterMode :: None => (
351
350
bytes. read_with ( offset, Bytes :: Len ( bytes. len ( ) - * offset) ) ?,
@@ -561,6 +560,24 @@ mod tests {
561
560
Address , ExtendedAddress , FrameVersion , PanId , ShortAddress ,
562
561
} ;
563
562
563
+ #[ test]
564
+ fn decode_ver0_ack ( ) {
565
+ let data = [ 0x02 , 0x00 , 0x04 ] ;
566
+
567
+ let frame: Frame = data. read_with ( & mut 0 , FooterMode :: None ) . unwrap ( ) ;
568
+ let hdr = frame. header ;
569
+ assert_eq ! ( hdr. frame_type, FrameType :: Acknowledgement ) ;
570
+ assert_eq ! ( hdr. has_security( ) , false ) ;
571
+ assert_eq ! ( hdr. frame_pending, false ) ;
572
+ assert_eq ! ( hdr. ack_request, false ) ;
573
+ assert_eq ! ( hdr. pan_id_compress, false ) ;
574
+ assert_eq ! ( hdr. version, FrameVersion :: Ieee802154_2003 ) ;
575
+ assert_eq ! ( frame. header. destination, None ) ;
576
+ assert_eq ! ( frame. header. source, None ) ;
577
+ assert_eq ! ( frame. header. seq, 4 ) ;
578
+ assert_eq ! ( frame. payload. len( ) , 0 ) ;
579
+ }
580
+
564
581
#[ test]
565
582
fn decode_ver0_pan_id_compression ( ) {
566
583
let data = [
@@ -624,6 +641,7 @@ mod tests {
624
641
) )
625
642
) ;
626
643
assert_eq ! ( frame. header. seq, 139 ) ;
644
+ assert_eq ! ( frame. payload. len( ) , 3 ) ;
627
645
}
628
646
629
647
#[ test]
0 commit comments