|
|
@@ -690,37 +690,28 @@ class TestLORANode(unittest.IsolatedAsyncioTestCase): |
|
|
|
async def runner(self): |
|
|
|
for expectlen in [ 24, 17, 9, 9, 9, 9 ]: |
|
|
|
# get message |
|
|
|
gb = await self.get() |
|
|
|
r = make_pktbuf(gb) |
|
|
|
|
|
|
|
outbytes = bytearray(64) |
|
|
|
outbuf = make_pktbuf(outbytes) |
|
|
|
inmsg = await self.get() |
|
|
|
|
|
|
|
# process the test message |
|
|
|
lora_comms.comms_process(commstate, r, |
|
|
|
outbuf) |
|
|
|
out = lora_comms.comms_process_wrap( |
|
|
|
commstate, inmsg) |
|
|
|
|
|
|
|
# make sure the reply matches length |
|
|
|
_self.assertEqual(expectlen, |
|
|
|
outbuf.pktlen) |
|
|
|
_self.assertEqual(expectlen, len(out)) |
|
|
|
|
|
|
|
# save what was originally replied |
|
|
|
origmsg = outbuf._from() |
|
|
|
origmsg = out |
|
|
|
|
|
|
|
# pretend that the reply didn't make it |
|
|
|
r = make_pktbuf(gb) |
|
|
|
outbuf = make_pktbuf(outbytes) |
|
|
|
|
|
|
|
lora_comms.comms_process(commstate, r, |
|
|
|
outbuf) |
|
|
|
out = lora_comms.comms_process_wrap( |
|
|
|
commstate, inmsg) |
|
|
|
|
|
|
|
# make sure that the reply matches |
|
|
|
# the previous |
|
|
|
_self.assertEqual(origmsg, |
|
|
|
outbuf._from()) |
|
|
|
_self.assertEqual(origmsg, out) |
|
|
|
|
|
|
|
# pass the reply back |
|
|
|
await self.put(outbytes[:outbuf.pktlen]) |
|
|
|
await self.put(out) |
|
|
|
|
|
|
|
# Generate shared key |
|
|
|
shared_key = os.urandom(32) |
|
|
@@ -801,19 +792,14 @@ class TestLORANode(unittest.IsolatedAsyncioTestCase): |
|
|
|
class FlipMsg(object): |
|
|
|
async def flipmsg(self): |
|
|
|
# get message |
|
|
|
gb = await self.get() |
|
|
|
r = make_pktbuf(gb) |
|
|
|
|
|
|
|
outbytes = bytearray(64) |
|
|
|
outbuf = make_pktbuf(outbytes) |
|
|
|
inmsg = await self.get() |
|
|
|
|
|
|
|
# process the test message |
|
|
|
lora_comms.comms_process(commstate, r, |
|
|
|
outbuf) |
|
|
|
out = lora_comms.comms_process_wrap( |
|
|
|
commstate, inmsg) |
|
|
|
|
|
|
|
# pass the reply back |
|
|
|
pkt = outbytes[:outbuf.pktlen] |
|
|
|
await self.put(pkt) |
|
|
|
await self.put(out) |
|
|
|
|
|
|
|
# this class always passes messages, this is |
|
|
|
# used for the first session. |
|
|
@@ -824,17 +810,14 @@ class TestLORANode(unittest.IsolatedAsyncioTestCase): |
|
|
|
|
|
|
|
async with seq.sync(0): |
|
|
|
# create bogus message |
|
|
|
r = make_pktbuf(b'0'*24) |
|
|
|
|
|
|
|
outbytes = bytearray(64) |
|
|
|
outbuf = make_pktbuf(outbytes) |
|
|
|
inmsg = b'0'*24 |
|
|
|
|
|
|
|
# process the bogus message |
|
|
|
lora_comms.comms_process(commstate, r, |
|
|
|
outbuf) |
|
|
|
out = lora_comms.comms_process_wrap( |
|
|
|
commstate, inmsg) |
|
|
|
|
|
|
|
# make sure there was not a response |
|
|
|
_self.assertEqual(outbuf.pktlen, 0) |
|
|
|
_self.assertFalse(out) |
|
|
|
|
|
|
|
await self.flipmsg() |
|
|
|
|
|
|
|