@@ -345,7 +345,6 @@ impl<'a> TryRead<'a, FooterMode> for Frame<'a> {
345345 if header. has_security ( ) {
346346 return Err ( DecodeError :: SecurityEnabled ) ?;
347347 }
348-
349348 let ( payload, footer) = match mode {
350349 FooterMode :: None => (
351350 bytes. read_with ( offset, Bytes :: Len ( bytes. len ( ) - * offset) ) ?,
@@ -561,6 +560,24 @@ mod tests {
561560 Address , ExtendedAddress , FrameVersion , PanId , ShortAddress ,
562561 } ;
563562
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+
564581 #[ test]
565582 fn decode_ver0_pan_id_compression ( ) {
566583 let data = [
@@ -624,6 +641,7 @@ mod tests {
624641 ) )
625642 ) ;
626643 assert_eq ! ( frame. header. seq, 139 ) ;
644+ assert_eq ! ( frame. payload. len( ) , 3 ) ;
627645 }
628646
629647 #[ test]
0 commit comments