From 7b09894a4b9e47b0967f1c4ef7f9959080dc5cc7 Mon Sep 17 00:00:00 2001 From: DJ2LS Date: Sun, 17 Dec 2023 12:31:44 +0100 Subject: [PATCH] WIP ARQ - added tests for large payload --- modem/arq_session_irs.py | 2 +- tests/test_arq_session.py | 19 ++++++++++++++++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/modem/arq_session_irs.py b/modem/arq_session_irs.py index e9c98308..035a9c57 100644 --- a/modem/arq_session_irs.py +++ b/modem/arq_session_irs.py @@ -116,7 +116,7 @@ class ARQSessionIRS(arq_session.ARQSession): def process_incoming_data(self, frame): if frame['offset'] != self.received_bytes: - self.logger.info(f"Discarding data frame due to wrong offset", frame=self.frame_received) + self.logger.info(f"Discarding data frame due to wrong offset", frame=frame) return False remaining_data_length = self.total_length - self.received_bytes diff --git a/tests/test_arq_session.py b/tests/test_arq_session.py index 1c4d1d8d..d99c5e2b 100644 --- a/tests/test_arq_session.py +++ b/tests/test_arq_session.py @@ -13,6 +13,7 @@ from state_manager import StateManager from frame_dispatcher import DISPATCHER import random import structlog +import numpy as np class TestModem: def __init__(self): @@ -75,8 +76,7 @@ class TestARQSession(unittest.TestCase): name = "IRS to ISS channel") self.irs_to_iss_channel.start() - def testARQSession(self): - + def testARQSessionSmallPayload(self): # set Packet Error Rate (PER) / frame loss probability self.loss_probability = 30 @@ -87,6 +87,19 @@ class TestARQSession(unittest.TestCase): } cmd = ARQRawCommand(self.config, self.iss_state_manager, self.iss_event_queue, params) cmd.run(self.iss_event_queue, self.iss_modem) - + + def testARQSessionLargePayload(self): + # set Packet Error Rate (PER) / frame loss probability + self.loss_probability = 30 + + self.establishChannels() + params = { + 'dxcall': "DJ2LS-3", + 'data': base64.b64encode(np.random.bytes(1000)), + } + cmd = ARQRawCommand(self.config, self.iss_state_manager, self.iss_event_queue, params) + cmd.run(self.iss_event_queue, self.iss_modem) + + if __name__ == '__main__': unittest.main()