Skip to content

Commit

Permalink
Complete llcp pdu test coverage.
Browse files Browse the repository at this point in the history
  • Loading branch information
nehpetsde committed Jun 9, 2017
1 parent 8549382 commit aaba60c
Show file tree
Hide file tree
Showing 2 changed files with 152 additions and 66 deletions.
18 changes: 9 additions & 9 deletions src/nfc/llcp/pdu.py
Original file line number Diff line number Diff line change
Expand Up @@ -143,11 +143,11 @@ def __init__(self, ptype, dsap, ssap):
self.dsap = dsap
self.ssap = ssap

@staticmethod
def decode_header(data, offset=0, size=None):
@classmethod
def decode_header(cls, data, offset=0, size=None):
if size is None:
size = len(data)
if size < 2:
size = len(data) - offset
if size < cls.header_size:
raise DecodeError("insufficient pdu header bytes")
(dsap, ssap) = struct.unpack_from('!BB', data, offset)
return (dsap >> 2, ssap & 63)
Expand Down Expand Up @@ -179,19 +179,19 @@ def __init__(self, ptype, dsap, ssap, ns, nr):
super(NumberedProtocolDataUnit, self).__init__(ptype, dsap, ssap)
self.ns, self.nr = ns, nr

@staticmethod
def decode_header(data, offset=0, size=None):
@classmethod
def decode_header(cls, data, offset=0, size=None):
if size is None:
size = len(data)
if size < 3:
size = len(data) - offset
if size < cls.header_size:
raise DecodeError("numbered pdu header length error")
(dsap, ssap, sequence) = struct.unpack_from('!BBB', data, offset)
return (dsap >> 2, ssap & 63, sequence >> 4, sequence & 15)

def encode_header(self):
data = super(NumberedProtocolDataUnit, self).encode_header()
if self.ns is None or self.nr is None:
raise EncodeError("pdu ns and nr field can not be none")
raise EncodeError("pdu ns and nr field can not be None")
if self.ns < 0 or self.nr < 0:
raise EncodeError("pdu ns and nr field can not be < 0")
if self.ns > 15 or self.nr > 15:
Expand Down

0 comments on commit aaba60c

Please sign in to comment.