aboutsummaryrefslogtreecommitdiff
path: root/pw_transfer/py/tests/transfer_test.py
diff options
context:
space:
mode:
Diffstat (limited to 'pw_transfer/py/tests/transfer_test.py')
-rw-r--r--pw_transfer/py/tests/transfer_test.py91
1 files changed, 52 insertions, 39 deletions
diff --git a/pw_transfer/py/tests/transfer_test.py b/pw_transfer/py/tests/transfer_test.py
index f06bbf508..8b29293f3 100644
--- a/pw_transfer/py/tests/transfer_test.py
+++ b/pw_transfer/py/tests/transfer_test.py
@@ -34,6 +34,7 @@ except ImportError:
from pigweed.pw_transfer import transfer_pb2 # type: ignore
_TRANSFER_SERVICE_ID = ids.calculate('pw.transfer.Transfer')
+_FIRST_SESSION_ID = 1
# If the default timeout is too short, some tests become flaky on Windows.
DEFAULT_TIMEOUT_S = 0.3
@@ -788,14 +789,14 @@ class TransferManagerTest(unittest.TestCase):
(
transfer_pb2.Chunk(
resource_id=39,
- session_id=280,
+ session_id=_FIRST_SESSION_ID,
type=transfer_pb2.Chunk.Type.START_ACK,
protocol_version=ProtocolVersion.VERSION_TWO.value,
),
),
(
transfer_pb2.Chunk(
- session_id=280,
+ session_id=_FIRST_SESSION_ID,
type=transfer_pb2.Chunk.Type.DATA,
offset=0,
data=b'version two',
@@ -804,7 +805,7 @@ class TransferManagerTest(unittest.TestCase):
),
(
transfer_pb2.Chunk(
- session_id=280,
+ session_id=_FIRST_SESSION_ID,
type=transfer_pb2.Chunk.Type.COMPLETION_ACK,
),
),
@@ -819,6 +820,7 @@ class TransferManagerTest(unittest.TestCase):
transfer_pb2.Chunk(
transfer_id=39,
resource_id=39,
+ desired_session_id=_FIRST_SESSION_ID,
pending_bytes=8192,
max_chunk_size_bytes=1024,
window_end_offset=8192,
@@ -826,7 +828,7 @@ class TransferManagerTest(unittest.TestCase):
protocol_version=ProtocolVersion.VERSION_TWO.value,
),
transfer_pb2.Chunk(
- session_id=280,
+ session_id=_FIRST_SESSION_ID,
type=transfer_pb2.Chunk.Type.START_ACK_CONFIRMATION,
max_chunk_size_bytes=1024,
window_end_offset=8192,
@@ -835,7 +837,7 @@ class TransferManagerTest(unittest.TestCase):
protocol_version=ProtocolVersion.VERSION_TWO.value,
),
transfer_pb2.Chunk(
- session_id=280,
+ session_id=_FIRST_SESSION_ID,
type=transfer_pb2.Chunk.Type.COMPLETION,
status=Status.OK.value,
),
@@ -877,6 +879,7 @@ class TransferManagerTest(unittest.TestCase):
transfer_pb2.Chunk(
transfer_id=40,
resource_id=40,
+ desired_session_id=_FIRST_SESSION_ID,
pending_bytes=8192,
max_chunk_size_bytes=1024,
window_end_offset=8192,
@@ -907,14 +910,14 @@ class TransferManagerTest(unittest.TestCase):
(
transfer_pb2.Chunk(
resource_id=72,
- session_id=880,
+ session_id=_FIRST_SESSION_ID,
type=transfer_pb2.Chunk.Type.START_ACK,
protocol_version=ProtocolVersion.VERSION_TWO.value,
),
),
(
transfer_pb2.Chunk(
- session_id=880,
+ session_id=_FIRST_SESSION_ID,
type=transfer_pb2.Chunk.Type.PARAMETERS_RETRANSMIT,
offset=0,
window_end_offset=32,
@@ -924,7 +927,7 @@ class TransferManagerTest(unittest.TestCase):
(), # In response to the first data chunk.
(
transfer_pb2.Chunk(
- session_id=880,
+ session_id=_FIRST_SESSION_ID,
type=transfer_pb2.Chunk.Type.COMPLETION,
status=Status.OK.value,
),
@@ -940,29 +943,31 @@ class TransferManagerTest(unittest.TestCase):
transfer_pb2.Chunk(
transfer_id=72,
resource_id=72,
+ desired_session_id=_FIRST_SESSION_ID,
type=transfer_pb2.Chunk.Type.START,
protocol_version=ProtocolVersion.VERSION_TWO.value,
),
transfer_pb2.Chunk(
- session_id=880,
+ session_id=_FIRST_SESSION_ID,
type=transfer_pb2.Chunk.Type.START_ACK_CONFIRMATION,
protocol_version=ProtocolVersion.VERSION_TWO.value,
),
transfer_pb2.Chunk(
- session_id=880,
+ session_id=_FIRST_SESSION_ID,
type=transfer_pb2.Chunk.Type.DATA,
offset=0,
data=b'write ve',
),
transfer_pb2.Chunk(
- session_id=880,
+ session_id=_FIRST_SESSION_ID,
type=transfer_pb2.Chunk.Type.DATA,
offset=8,
data=b'rsion 2',
remaining_bytes=0,
),
transfer_pb2.Chunk(
- session_id=880, type=transfer_pb2.Chunk.Type.COMPLETION_ACK
+ session_id=_FIRST_SESSION_ID,
+ type=transfer_pb2.Chunk.Type.COMPLETION_ACK,
),
],
)
@@ -1010,6 +1015,7 @@ class TransferManagerTest(unittest.TestCase):
transfer_pb2.Chunk(
transfer_id=76,
resource_id=76,
+ desired_session_id=_FIRST_SESSION_ID,
type=transfer_pb2.Chunk.Type.START,
protocol_version=ProtocolVersion.VERSION_TWO.value,
),
@@ -1032,7 +1038,7 @@ class TransferManagerTest(unittest.TestCase):
self.assertEqual(self._received_data(), b'write v... NOPE')
def test_v2_server_error(self) -> None:
- """Tests a timeout occurring during the opening handshake."""
+ """Tests a server error occurring during the opening handshake."""
manager = pw_transfer.Manager(
self._service,
@@ -1046,14 +1052,14 @@ class TransferManagerTest(unittest.TestCase):
(
transfer_pb2.Chunk(
resource_id=43,
- session_id=680,
+ session_id=_FIRST_SESSION_ID,
type=transfer_pb2.Chunk.Type.START_ACK,
protocol_version=ProtocolVersion.VERSION_TWO.value,
),
),
(
transfer_pb2.Chunk(
- session_id=680,
+ session_id=_FIRST_SESSION_ID,
type=transfer_pb2.Chunk.Type.COMPLETION,
status=Status.DATA_LOSS.value,
),
@@ -1069,6 +1075,7 @@ class TransferManagerTest(unittest.TestCase):
[
transfer_pb2.Chunk(
transfer_id=43,
+ desired_session_id=_FIRST_SESSION_ID,
resource_id=43,
pending_bytes=8192,
max_chunk_size_bytes=1024,
@@ -1077,7 +1084,7 @@ class TransferManagerTest(unittest.TestCase):
protocol_version=ProtocolVersion.VERSION_TWO.value,
),
transfer_pb2.Chunk(
- session_id=680,
+ session_id=_FIRST_SESSION_ID,
type=transfer_pb2.Chunk.Type.START_ACK_CONFIRMATION,
max_chunk_size_bytes=1024,
window_end_offset=8192,
@@ -1085,7 +1092,8 @@ class TransferManagerTest(unittest.TestCase):
),
# Client sends a COMPLETION_ACK in response to the server.
transfer_pb2.Chunk(
- session_id=680, type=transfer_pb2.Chunk.Type.COMPLETION_ACK
+ session_id=_FIRST_SESSION_ID,
+ type=transfer_pb2.Chunk.Type.COMPLETION_ACK,
),
],
)
@@ -1110,6 +1118,7 @@ class TransferManagerTest(unittest.TestCase):
start_chunk = transfer_pb2.Chunk(
transfer_id=41,
resource_id=41,
+ desired_session_id=_FIRST_SESSION_ID,
pending_bytes=8192,
max_chunk_size_bytes=1024,
window_end_offset=8192,
@@ -1138,7 +1147,7 @@ class TransferManagerTest(unittest.TestCase):
(
transfer_pb2.Chunk(
resource_id=73,
- session_id=101,
+ session_id=_FIRST_SESSION_ID,
type=transfer_pb2.Chunk.Type.START_ACK,
protocol_version=ProtocolVersion.VERSION_TWO.value,
),
@@ -1147,7 +1156,7 @@ class TransferManagerTest(unittest.TestCase):
(), # Don't respond to the first START_ACK_CONFIRMATION retry.
(
transfer_pb2.Chunk(
- session_id=101,
+ session_id=_FIRST_SESSION_ID,
type=transfer_pb2.Chunk.Type.PARAMETERS_RETRANSMIT,
offset=0,
window_end_offset=32,
@@ -1157,7 +1166,7 @@ class TransferManagerTest(unittest.TestCase):
(), # In response to the first data chunk.
(
transfer_pb2.Chunk(
- session_id=101,
+ session_id=_FIRST_SESSION_ID,
type=transfer_pb2.Chunk.Type.COMPLETION,
status=Status.OK.value,
),
@@ -1168,7 +1177,7 @@ class TransferManagerTest(unittest.TestCase):
manager.write(73, b'write timeout 2')
start_ack_confirmation = transfer_pb2.Chunk(
- session_id=101,
+ session_id=_FIRST_SESSION_ID,
type=transfer_pb2.Chunk.Type.START_ACK_CONFIRMATION,
protocol_version=ProtocolVersion.VERSION_TWO.value,
)
@@ -1179,6 +1188,7 @@ class TransferManagerTest(unittest.TestCase):
transfer_pb2.Chunk(
transfer_id=73,
resource_id=73,
+ desired_session_id=_FIRST_SESSION_ID,
type=transfer_pb2.Chunk.Type.START,
protocol_version=ProtocolVersion.VERSION_TWO.value,
),
@@ -1186,20 +1196,21 @@ class TransferManagerTest(unittest.TestCase):
start_ack_confirmation, # Retry 1
start_ack_confirmation, # Retry 2
transfer_pb2.Chunk(
- session_id=101,
+ session_id=_FIRST_SESSION_ID,
type=transfer_pb2.Chunk.Type.DATA,
offset=0,
data=b'write ti',
),
transfer_pb2.Chunk(
- session_id=101,
+ session_id=_FIRST_SESSION_ID,
type=transfer_pb2.Chunk.Type.DATA,
offset=8,
data=b'meout 2',
remaining_bytes=0,
),
transfer_pb2.Chunk(
- session_id=101, type=transfer_pb2.Chunk.Type.COMPLETION_ACK
+ session_id=_FIRST_SESSION_ID,
+ type=transfer_pb2.Chunk.Type.COMPLETION_ACK,
),
],
)
@@ -1220,14 +1231,14 @@ class TransferManagerTest(unittest.TestCase):
(
transfer_pb2.Chunk(
resource_id=47,
- session_id=580,
+ session_id=_FIRST_SESSION_ID,
type=transfer_pb2.Chunk.Type.START_ACK,
protocol_version=ProtocolVersion.VERSION_TWO.value,
),
),
(
transfer_pb2.Chunk(
- session_id=580,
+ session_id=_FIRST_SESSION_ID,
type=transfer_pb2.Chunk.Type.DATA,
offset=0,
data=b'version two',
@@ -1238,7 +1249,7 @@ class TransferManagerTest(unittest.TestCase):
# of a COMPLETION_ACK.
(
transfer_pb2.Chunk(
- session_id=580,
+ session_id=_FIRST_SESSION_ID,
type=transfer_pb2.Chunk.Type.DATA,
offset=0,
data=b'version two',
@@ -1247,7 +1258,7 @@ class TransferManagerTest(unittest.TestCase):
),
(
transfer_pb2.Chunk(
- session_id=580,
+ session_id=_FIRST_SESSION_ID,
type=transfer_pb2.Chunk.Type.COMPLETION_ACK,
),
),
@@ -1262,6 +1273,7 @@ class TransferManagerTest(unittest.TestCase):
transfer_pb2.Chunk(
transfer_id=47,
resource_id=47,
+ desired_session_id=_FIRST_SESSION_ID,
pending_bytes=8192,
max_chunk_size_bytes=1024,
window_end_offset=8192,
@@ -1269,20 +1281,20 @@ class TransferManagerTest(unittest.TestCase):
protocol_version=ProtocolVersion.VERSION_TWO.value,
),
transfer_pb2.Chunk(
- session_id=580,
+ session_id=_FIRST_SESSION_ID,
type=transfer_pb2.Chunk.Type.START_ACK_CONFIRMATION,
max_chunk_size_bytes=1024,
window_end_offset=8192,
protocol_version=ProtocolVersion.VERSION_TWO.value,
),
transfer_pb2.Chunk(
- session_id=580,
+ session_id=_FIRST_SESSION_ID,
type=transfer_pb2.Chunk.Type.COMPLETION,
status=Status.OK.value,
),
# Completion should be re-sent following the repeated chunk.
transfer_pb2.Chunk(
- session_id=580,
+ session_id=_FIRST_SESSION_ID,
type=transfer_pb2.Chunk.Type.COMPLETION,
status=Status.OK.value,
),
@@ -1305,14 +1317,14 @@ class TransferManagerTest(unittest.TestCase):
(
transfer_pb2.Chunk(
resource_id=47,
- session_id=980,
+ session_id=_FIRST_SESSION_ID,
type=transfer_pb2.Chunk.Type.START_ACK,
protocol_version=ProtocolVersion.VERSION_TWO.value,
),
),
(
transfer_pb2.Chunk(
- session_id=980,
+ session_id=_FIRST_SESSION_ID,
type=transfer_pb2.Chunk.Type.DATA,
offset=0,
data=b'dropped completion',
@@ -1331,6 +1343,7 @@ class TransferManagerTest(unittest.TestCase):
transfer_pb2.Chunk(
transfer_id=47,
resource_id=47,
+ desired_session_id=_FIRST_SESSION_ID,
pending_bytes=8192,
max_chunk_size_bytes=1024,
window_end_offset=8192,
@@ -1338,30 +1351,30 @@ class TransferManagerTest(unittest.TestCase):
protocol_version=ProtocolVersion.VERSION_TWO.value,
),
transfer_pb2.Chunk(
- session_id=980,
+ session_id=_FIRST_SESSION_ID,
type=transfer_pb2.Chunk.Type.START_ACK_CONFIRMATION,
max_chunk_size_bytes=1024,
window_end_offset=8192,
protocol_version=ProtocolVersion.VERSION_TWO.value,
),
transfer_pb2.Chunk(
- session_id=980,
+ session_id=_FIRST_SESSION_ID,
type=transfer_pb2.Chunk.Type.COMPLETION,
status=Status.OK.value,
),
# The completion should be retried per the usual retry flow.
transfer_pb2.Chunk(
- session_id=980,
+ session_id=_FIRST_SESSION_ID,
type=transfer_pb2.Chunk.Type.COMPLETION,
status=Status.OK.value,
),
transfer_pb2.Chunk(
- session_id=980,
+ session_id=_FIRST_SESSION_ID,
type=transfer_pb2.Chunk.Type.COMPLETION,
status=Status.OK.value,
),
transfer_pb2.Chunk(
- session_id=980,
+ session_id=_FIRST_SESSION_ID,
type=transfer_pb2.Chunk.Type.COMPLETION,
status=Status.OK.value,
),
@@ -1412,7 +1425,7 @@ class ProgressStatsTest(unittest.TestCase):
if __name__ == '__main__':
- # TODO(b/265975025): Only run this test in upstream Pigweed until the
+ # TODO: b/265975025 - Only run this test in upstream Pigweed until the
# occasional hangs are fixed.
if os.environ.get('PW_ROOT') and os.environ.get(
'PW_ROOT'