Skip to content

Commit

Permalink
Test : add a block retransmit test. this test is passes with this imp…
Browse files Browse the repository at this point in the history
…lementation but will fail with an invalid CRC without fix for discarded segments
  • Loading branch information
Samuel Lee committed Jan 15, 2025
1 parent 1a74fb6 commit 4725972
Showing 1 changed file with 308 additions and 0 deletions.
308 changes: 308 additions & 0 deletions test/test_sdo.py
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,314 @@ def test_block_upload(self):
data = fp.read()
self.assertEqual(data, 'Tiny Node - Mega Domains !')

def test_sdo_block_upload_retransmit(self):
"""Send 'the crazy fox jumps over the lazy dog\n' multiple times
and trigger a retransmit by only validating a block partially.
"""
self.data = [
(TX, b"\xa4\x08\x10\x00\x7f\x00\x00\x00"),
(RX, b"\xc4\x08\x10\x00\x00\x00\x00\x00"),
(TX, b"\xa3\x00\x00\x00\x00\x00\x00\x00"),
(RX, b"\x01\x74\x68\x65\x20\x63\x72\x61"),
(RX, b"\x02\x7a\x79\x20\x66\x6f\x78\x20"),
(RX, b"\x03\x6a\x75\x6d\x70\x73\x20\x6f"),
(RX, b"\x04\x76\x65\x72\x20\x74\x68\x65"),
(RX, b"\x05\x20\x6c\x61\x7a\x79\x20\x64"),
(RX, b"\x06\x6f\x67\x0a\x74\x68\x65\x20"),
(RX, b"\x07\x63\x72\x61\x7a\x79\x20\x66"),
(RX, b"\x08\x6f\x78\x20\x6a\x75\x6d\x70"),
(RX, b"\x09\x73\x20\x6f\x76\x65\x72\x20"),
(RX, b"\x0a\x74\x68\x65\x20\x6c\x61\x7a"),
(RX, b"\x0b\x79\x20\x64\x6f\x67\x0a\x74"),
(RX, b"\x0c\x68\x65\x20\x63\x72\x61\x7a"),
(RX, b"\x0d\x79\x20\x66\x6f\x78\x20\x6a"),
(RX, b"\x0e\x75\x6d\x70\x73\x20\x6f\x76"),
(RX, b"\x0f\x65\x72\x20\x74\x68\x65\x20"),
(RX, b"\x10\x6c\x61\x7a\x79\x20\x64\x6f"),
(RX, b"\x11\x67\x0a\x74\x68\x65\x20\x63"),
(RX, b"\x12\x72\x61\x7a\x79\x20\x66\x6f"),
(RX, b"\x13\x78\x20\x6a\x75\x6d\x70\x73"),
(RX, b"\x14\x20\x6f\x76\x65\x72\x20\x74"),
(RX, b"\x15\x68\x65\x20\x6c\x61\x7a\x79"),
(RX, b"\x16\x20\x64\x6f\x67\x0a\x74\x68"),
(RX, b"\x17\x65\x20\x63\x72\x61\x7a\x79"),
(RX, b"\x18\x20\x66\x6f\x78\x20\x6a\x75"),
(RX, b"\x19\x6d\x70\x73\x20\x6f\x76\x65"),
(RX, b"\x1a\x72\x20\x74\x68\x65\x20\x6c"),
(RX, b"\x1b\x61\x7a\x79\x20\x64\x6f\x67"),
(RX, b"\x1c\x0a\x74\x68\x65\x20\x63\x72"),
(RX, b"\x1d\x61\x7a\x79\x20\x66\x6f\x78"),
(RX, b"\x1e\x20\x6a\x75\x6d\x70\x73\x20"),
(RX, b"\x1f\x6f\x76\x65\x72\x20\x74\x68"),
(RX, b"\x20\x65\x20\x6c\x61\x7a\x79\x20"),
(RX, b"\x21\x64\x6f\x67\x0a\x74\x68\x65"),
(RX, b"\x22\x20\x63\x72\x61\x7a\x79\x20"),
(RX, b"\x23\x66\x6f\x78\x20\x6a\x75\x6d"),
(RX, b"\x24\x70\x73\x20\x6f\x76\x65\x72"),
(RX, b"\x25\x20\x74\x68\x65\x20\x6c\x61"),
(RX, b"\x26\x7a\x79\x20\x64\x6f\x67\x0a"),
(RX, b"\x27\x74\x68\x65\x20\x63\x72\x61"),
(RX, b"\x28\x7a\x79\x20\x66\x6f\x78\x20"),
(RX, b"\x29\x6a\x75\x6d\x70\x73\x20\x6f"),
(RX, b"\x2a\x76\x65\x72\x20\x74\x68\x65"),
(RX, b"\x2b\x20\x6c\x61\x7a\x79\x20\x64"),
(RX, b"\x2c\x6f\x67\x0a\x74\x68\x65\x20"),
(RX, b"\x2d\x63\x72\x61\x7a\x79\x20\x66"),
(RX, b"\x2e\x6f\x78\x20\x6a\x75\x6d\x70"),
(RX, b"\x2f\x73\x20\x6f\x76\x65\x72\x20"),
(RX, b"\x30\x74\x68\x65\x20\x6c\x61\x7a"),
(RX, b"\x31\x79\x20\x64\x6f\x67\x0a\x74"),
(RX, b"\x32\x68\x65\x20\x63\x72\x61\x7a"),
(RX, b"\x34\x79\x20\x66\x6f\x78\x20\x6a"),
(RX, b"\x34\x75\x6d\x70\x73\x20\x6f\x76"), # Wrong seqno (x34 instead of x32)
(RX, b"\x35\x65\x72\x20\x74\x68\x65\x20"),
(RX, b"\x36\x6c\x61\x7a\x79\x20\x64\x6f"),
(RX, b"\x37\x67\x0a\x74\x68\x65\x20\x63"),
(RX, b"\x38\x72\x61\x7a\x79\x20\x66\x6f"),
(RX, b"\x39\x78\x20\x6a\x75\x6d\x70\x73"),
(RX, b"\x3a\x20\x6f\x76\x65\x72\x20\x74"),
(RX, b"\x3b\x68\x65\x20\x6c\x61\x7a\x79"),
(RX, b"\x3c\x20\x64\x6f\x67\x0a\x74\x68"),
(RX, b"\x3d\x65\x20\x63\x72\x61\x7a\x79"),
(RX, b"\x3e\x20\x66\x6f\x78\x20\x6a\x75"),
(RX, b"\x3f\x6d\x70\x73\x20\x6f\x76\x65"),
(RX, b"\x40\x72\x20\x74\x68\x65\x20\x6c"),
(RX, b"\x41\x61\x7a\x79\x20\x64\x6f\x67"),
(RX, b"\x42\x0a\x74\x68\x65\x20\x63\x72"),
(RX, b"\x43\x61\x7a\x79\x20\x66\x6f\x78"),
(RX, b"\x44\x20\x6a\x75\x6d\x70\x73\x20"),
(RX, b"\x45\x6f\x76\x65\x72\x20\x74\x68"),
(RX, b"\x46\x65\x20\x6c\x61\x7a\x79\x20"),
(RX, b"\x47\x64\x6f\x67\x0a\x74\x68\x65"),
(RX, b"\x48\x20\x63\x72\x61\x7a\x79\x20"),
(RX, b"\x49\x66\x6f\x78\x20\x6a\x75\x6d"),
(RX, b"\x4a\x70\x73\x20\x6f\x76\x65\x72"),
(RX, b"\x4b\x20\x74\x68\x65\x20\x6c\x61"),
(RX, b"\x4c\x7a\x79\x20\x64\x6f\x67\x0a"),
(RX, b"\x4d\x74\x68\x65\x20\x63\x72\x61"),
(RX, b"\x4e\x7a\x79\x20\x66\x6f\x78\x20"),
(RX, b"\x4f\x6a\x75\x6d\x70\x73\x20\x6f"),
(RX, b"\x50\x76\x65\x72\x20\x74\x68\x65"),
(RX, b"\x51\x20\x6c\x61\x7a\x79\x20\x64"),
(RX, b"\x52\x6f\x67\x0a\x74\x68\x65\x20"),
(RX, b"\x53\x63\x72\x61\x7a\x79\x20\x66"),
(RX, b"\x54\x6f\x78\x20\x6a\x75\x6d\x70"),
(RX, b"\x55\x73\x20\x6f\x76\x65\x72\x20"),
(RX, b"\x56\x74\x68\x65\x20\x6c\x61\x7a"),
(RX, b"\x57\x79\x20\x64\x6f\x67\x0a\x74"),
(RX, b"\x58\x68\x65\x20\x63\x72\x61\x7a"),
(RX, b"\x59\x79\x20\x66\x6f\x78\x20\x6a"),
(RX, b"\x5a\x75\x6d\x70\x73\x20\x6f\x76"),
(RX, b"\x5b\x65\x72\x20\x74\x68\x65\x20"),
(RX, b"\x5c\x6c\x61\x7a\x79\x20\x64\x6f"),
(RX, b"\x5d\x67\x0a\x74\x68\x65\x20\x63"),
(RX, b"\x5e\x72\x61\x7a\x79\x20\x66\x6f"),
(RX, b"\x5f\x78\x20\x6a\x75\x6d\x70\x73"),
(RX, b"\x60\x20\x6f\x76\x65\x72\x20\x74"),
(RX, b"\x61\x68\x65\x20\x6c\x61\x7a\x79"),
(RX, b"\x62\x20\x64\x6f\x67\x0a\x74\x68"),
(RX, b"\x63\x65\x20\x63\x72\x61\x7a\x79"),
(RX, b"\x64\x20\x66\x6f\x78\x20\x6a\x75"),
(RX, b"\x65\x6d\x70\x73\x20\x6f\x76\x65"),
(RX, b"\x66\x72\x20\x74\x68\x65\x20\x6c"),
(RX, b"\x67\x61\x7a\x79\x20\x64\x6f\x67"),
(RX, b"\x68\x0a\x74\x68\x65\x20\x63\x72"),
(RX, b"\x69\x61\x7a\x79\x20\x66\x6f\x78"),
(RX, b"\x6a\x20\x6a\x75\x6d\x70\x73\x20"),
(RX, b"\x6b\x6f\x76\x65\x72\x20\x74\x68"),
(RX, b"\x6c\x65\x20\x6c\x61\x7a\x79\x20"),
(RX, b"\x6d\x64\x6f\x67\x0a\x74\x68\x65"),
(RX, b"\x6e\x20\x63\x72\x61\x7a\x79\x20"),
(RX, b"\x6f\x66\x6f\x78\x20\x6a\x75\x6d"),
(RX, b"\x70\x70\x73\x20\x6f\x76\x65\x72"),
(RX, b"\x71\x20\x74\x68\x65\x20\x6c\x61"),
(RX, b"\x72\x7a\x79\x20\x64\x6f\x67\x0a"),
(RX, b"\x73\x74\x68\x65\x20\x63\x72\x61"),
(RX, b"\x74\x7a\x79\x20\x66\x6f\x78\x20"),
(RX, b"\x75\x6a\x75\x6d\x70\x73\x20\x6f"),
(RX, b"\x76\x76\x65\x72\x20\x74\x68\x65"),
(RX, b"\x77\x20\x6c\x61\x7a\x79\x20\x64"),
(RX, b"\x78\x6f\x67\x0a\x74\x68\x65\x20"),
(RX, b"\x79\x63\x72\x61\x7a\x79\x20\x66"),
(RX, b"\x7a\x6f\x78\x20\x6a\x75\x6d\x70"),
(RX, b"\x7b\x73\x20\x6f\x76\x65\x72\x20"),
(RX, b"\x7c\x74\x68\x65\x20\x6c\x61\x7a"),
(RX, b"\x7d\x79\x20\x64\x6f\x67\x0a\x74"),
(RX, b"\x7e\x68\x65\x20\x63\x72\x61\x7a"),
(RX, b"\x7f\x79\x20\x66\x6f\x78\x20\x6a"),
(TX, b"\xa2\x32\x7f\x00\x00\x00\x00\x00"), # Last good seqno (x32)
(RX, b"\x01\x79\x20\x66\x6f\x78\x20\x6a"), # Start resending from last acknowledged block
(RX, b"\x02\x75\x6d\x70\x73\x20\x6f\x76"),
(RX, b"\x03\x65\x72\x20\x74\x68\x65\x20"),
(RX, b"\x04\x6c\x61\x7a\x79\x20\x64\x6f"),
(RX, b"\x05\x67\x0a\x74\x68\x65\x20\x63"),
(RX, b"\x06\x72\x61\x7a\x79\x20\x66\x6f"),
(RX, b"\x07\x78\x20\x6a\x75\x6d\x70\x73"),
(RX, b"\x08\x20\x6f\x76\x65\x72\x20\x74"),
(RX, b"\x09\x68\x65\x20\x6c\x61\x7a\x79"),
(RX, b"\x0a\x20\x64\x6f\x67\x0a\x74\x68"),
(RX, b"\x0b\x65\x20\x63\x72\x61\x7a\x79"),
(RX, b"\x0c\x20\x66\x6f\x78\x20\x6a\x75"),
(RX, b"\x0d\x6d\x70\x73\x20\x6f\x76\x65"),
(RX, b"\x0e\x72\x20\x74\x68\x65\x20\x6c"),
(RX, b"\x0f\x61\x7a\x79\x20\x64\x6f\x67"),
(RX, b"\x10\x0a\x74\x68\x65\x20\x63\x72"),
(RX, b"\x11\x61\x7a\x79\x20\x66\x6f\x78"),
(RX, b"\x12\x20\x6a\x75\x6d\x70\x73\x20"),
(RX, b"\x13\x6f\x76\x65\x72\x20\x74\x68"),
(RX, b"\x14\x65\x20\x6c\x61\x7a\x79\x20"),
(RX, b"\x15\x64\x6f\x67\x0a\x74\x68\x65"),
(RX, b"\x16\x20\x63\x72\x61\x7a\x79\x20"),
(RX, b"\x17\x66\x6f\x78\x20\x6a\x75\x6d"),
(RX, b"\x18\x70\x73\x20\x6f\x76\x65\x72"),
(RX, b"\x19\x20\x74\x68\x65\x20\x6c\x61"),
(RX, b"\x1a\x7a\x79\x20\x64\x6f\x67\x0a"),
(RX, b"\x1b\x74\x68\x65\x20\x63\x72\x61"),
(RX, b"\x1c\x7a\x79\x20\x66\x6f\x78\x20"),
(RX, b"\x1d\x6a\x75\x6d\x70\x73\x20\x6f"),
(RX, b"\x1e\x76\x65\x72\x20\x74\x68\x65"),
(RX, b"\x1f\x20\x6c\x61\x7a\x79\x20\x64"),
(RX, b"\x20\x6f\x67\x0a\x74\x68\x65\x20"),
(RX, b"\x21\x63\x72\x61\x7a\x79\x20\x66"),
(RX, b"\x22\x6f\x78\x20\x6a\x75\x6d\x70"),
(RX, b"\x23\x73\x20\x6f\x76\x65\x72\x20"),
(RX, b"\x24\x74\x68\x65\x20\x6c\x61\x7a"),
(RX, b"\x25\x79\x20\x64\x6f\x67\x0a\x74"),
(RX, b"\x26\x68\x65\x20\x63\x72\x61\x7a"),
(RX, b"\x27\x79\x20\x66\x6f\x78\x20\x6a"),
(RX, b"\x28\x75\x6d\x70\x73\x20\x6f\x76"),
(RX, b"\x29\x65\x72\x20\x74\x68\x65\x20"),
(RX, b"\x2a\x6c\x61\x7a\x79\x20\x64\x6f"),
(RX, b"\x2b\x67\x0a\x74\x68\x65\x20\x63"),
(RX, b"\x2c\x72\x61\x7a\x79\x20\x66\x6f"),
(RX, b"\x2d\x78\x20\x6a\x75\x6d\x70\x73"),
(RX, b"\x2e\x20\x6f\x76\x65\x72\x20\x74"),
(RX, b"\x2f\x68\x65\x20\x6c\x61\x7a\x79"),
(RX, b"\x30\x20\x64\x6f\x67\x0a\x74\x68"),
(RX, b"\x31\x65\x20\x63\x72\x61\x7a\x79"),
(RX, b"\x32\x20\x66\x6f\x78\x20\x6a\x75"),
(RX, b"\x33\x6d\x70\x73\x20\x6f\x76\x65"),
(RX, b"\x34\x72\x20\x74\x68\x65\x20\x6c"),
(RX, b"\x35\x61\x7a\x79\x20\x64\x6f\x67"),
(RX, b"\x36\x0a\x74\x68\x65\x20\x63\x72"),
(RX, b"\x37\x61\x7a\x79\x20\x66\x6f\x78"),
(RX, b"\x38\x20\x6a\x75\x6d\x70\x73\x20"),
(RX, b"\x39\x6f\x76\x65\x72\x20\x74\x68"),
(RX, b"\x3a\x65\x20\x6c\x61\x7a\x79\x20"),
(RX, b"\x3b\x64\x6f\x67\x0a\x74\x68\x65"),
(RX, b"\x3c\x20\x63\x72\x61\x7a\x79\x20"),
(RX, b"\x3d\x66\x6f\x78\x20\x6a\x75\x6d"),
(RX, b"\x3e\x70\x73\x20\x6f\x76\x65\x72"),
(RX, b"\x3f\x20\x74\x68\x65\x20\x6c\x61"),
(RX, b"\x40\x7a\x79\x20\x64\x6f\x67\x0a"),
(RX, b"\x41\x74\x68\x65\x20\x63\x72\x61"),
(RX, b"\x42\x7a\x79\x20\x66\x6f\x78\x20"),
(RX, b"\x43\x6a\x75\x6d\x70\x73\x20\x6f"),
(RX, b"\x44\x76\x65\x72\x20\x74\x68\x65"),
(RX, b"\x45\x20\x6c\x61\x7a\x79\x20\x64"),
(RX, b"\x46\x6f\x67\x0a\x74\x68\x65\x20"),
(RX, b"\x47\x63\x72\x61\x7a\x79\x20\x66"),
(RX, b"\x48\x6f\x78\x20\x6a\x75\x6d\x70"),
(RX, b"\x49\x73\x20\x6f\x76\x65\x72\x20"),
(RX, b"\x4a\x74\x68\x65\x20\x6c\x61\x7a"),
(RX, b"\x4b\x79\x20\x64\x6f\x67\x0a\x74"),
(RX, b"\x4c\x68\x65\x20\x63\x72\x61\x7a"),
(RX, b"\x4d\x79\x20\x66\x6f\x78\x20\x6a"),
(RX, b"\x4e\x75\x6d\x70\x73\x20\x6f\x76"),
(RX, b"\x4f\x65\x72\x20\x74\x68\x65\x20"),
(RX, b"\x50\x6c\x61\x7a\x79\x20\x64\x6f"),
(RX, b"\x51\x67\x0a\x74\x68\x65\x20\x63"),
(RX, b"\x52\x72\x61\x7a\x79\x20\x66\x6f"),
(RX, b"\x53\x78\x20\x6a\x75\x6d\x70\x73"),
(RX, b"\x54\x20\x6f\x76\x65\x72\x20\x74"),
(RX, b"\x55\x68\x65\x20\x6c\x61\x7a\x79"),
(RX, b"\x56\x20\x64\x6f\x67\x0a\x74\x68"),
(RX, b"\x57\x65\x20\x63\x72\x61\x7a\x79"),
(RX, b"\x58\x20\x66\x6f\x78\x20\x6a\x75"),
(RX, b"\x59\x6d\x70\x73\x20\x6f\x76\x65"),
(RX, b"\x5a\x72\x20\x74\x68\x65\x20\x6c"),
(RX, b"\x5b\x61\x7a\x79\x20\x64\x6f\x67"),
(RX, b"\x5c\x0a\x74\x68\x65\x20\x63\x72"),
(RX, b"\x5d\x61\x7a\x79\x20\x66\x6f\x78"),
(RX, b"\x5e\x20\x6a\x75\x6d\x70\x73\x20"),
(RX, b"\x5f\x6f\x76\x65\x72\x20\x74\x68"),
(RX, b"\x60\x65\x20\x6c\x61\x7a\x79\x20"),
(RX, b"\x61\x64\x6f\x67\x0a\x74\x68\x65"),
(RX, b"\x62\x20\x63\x72\x61\x7a\x79\x20"),
(RX, b"\x63\x66\x6f\x78\x20\x6a\x75\x6d"),
(RX, b"\x64\x70\x73\x20\x6f\x76\x65\x72"),
(RX, b"\x65\x20\x74\x68\x65\x20\x6c\x61"),
(RX, b"\x66\x7a\x79\x20\x64\x6f\x67\x0a"),
(RX, b"\x67\x74\x68\x65\x20\x63\x72\x61"),
(RX, b"\x68\x7a\x79\x20\x66\x6f\x78\x20"),
(RX, b"\x69\x6a\x75\x6d\x70\x73\x20\x6f"),
(RX, b"\x6a\x76\x65\x72\x20\x74\x68\x65"),
(RX, b"\x6b\x20\x6c\x61\x7a\x79\x20\x64"),
(RX, b"\x6c\x6f\x67\x0a\x74\x68\x65\x20"),
(RX, b"\x6d\x63\x72\x61\x7a\x79\x20\x66"),
(RX, b"\x6e\x6f\x78\x20\x6a\x75\x6d\x70"),
(RX, b"\x6f\x73\x20\x6f\x76\x65\x72\x20"),
(RX, b"\x70\x74\x68\x65\x20\x6c\x61\x7a"),
(RX, b"\x71\x79\x20\x64\x6f\x67\x0a\x74"),
(RX, b"\x72\x68\x65\x20\x63\x72\x61\x7a"),
(RX, b"\x73\x79\x20\x66\x6f\x78\x20\x6a"),
(RX, b"\x74\x75\x6d\x70\x73\x20\x6f\x76"),
(RX, b"\x75\x65\x72\x20\x74\x68\x65\x20"),
(RX, b"\x76\x6c\x61\x7a\x79\x20\x64\x6f"),
(RX, b"\x77\x67\x0a\x74\x68\x65\x20\x63"),
(RX, b"\x78\x72\x61\x7a\x79\x20\x66\x6f"),
(RX, b"\x79\x78\x20\x6a\x75\x6d\x70\x73"),
(RX, b"\x7a\x20\x6f\x76\x65\x72\x20\x74"),
(RX, b"\x7b\x68\x65\x20\x6c\x61\x7a\x79"),
(RX, b"\x7c\x20\x64\x6f\x67\x0a\x74\x68"),
(RX, b"\x7d\x65\x20\x63\x72\x61\x7a\x79"),
(RX, b"\x7e\x20\x66\x6f\x78\x20\x6a\x75"),
(RX, b"\x7f\x6d\x70\x73\x20\x6f\x76\x65"),
(TX, b"\xa2\x7f\x7f\x00\x00\x00\x00\x00"),
(RX, b"\x01\x72\x20\x74\x68\x65\x20\x6c"),
(RX, b"\x02\x61\x7a\x79\x20\x64\x6f\x67"),
(RX, b"\x03\x0a\x74\x68\x65\x20\x63\x72"),
(RX, b"\x04\x61\x7a\x79\x20\x66\x6f\x78"),
(RX, b"\x05\x20\x6a\x75\x6d\x70\x73\x20"),
(RX, b"\x06\x6f\x76\x65\x72\x20\x74\x68"),
(RX, b"\x07\x65\x20\x6c\x61\x7a\x79\x20"),
(RX, b"\x08\x64\x6f\x67\x0a\x74\x68\x65"),
(RX, b"\x09\x20\x63\x72\x61\x7a\x79\x20"),
(RX, b"\x0a\x66\x6f\x78\x20\x6a\x75\x6d"),
(RX, b"\x0b\x70\x73\x20\x6f\x76\x65\x72"),
(RX, b"\x0c\x20\x74\x68\x65\x20\x6c\x61"),
(RX, b"\x0d\x7a\x79\x20\x64\x6f\x67\x0a"),
(RX, b"\x0e\x74\x68\x65\x20\x63\x72\x61"),
(RX, b"\x0f\x7a\x79\x20\x66\x6f\x78\x20"),
(RX, b"\x10\x6a\x75\x6d\x70\x73\x20\x6f"),
(RX, b"\x11\x76\x65\x72\x20\x74\x68\x65"),
(RX, b"\x12\x20\x6c\x61\x7a\x79\x20\x64"),
(RX, b"\x13\x6f\x67\x0a\x74\x68\x65\x20"),
(RX, b"\x14\x63\x72\x61\x7a\x79\x20\x66"),
(RX, b"\x15\x6f\x78\x20\x6a\x75\x6d\x70"),
(RX, b"\x16\x73\x20\x6f\x76\x65\x72\x20"),
(RX, b"\x17\x74\x68\x65\x20\x6c\x61\x7a"),
(RX, b"\x18\x79\x20\x64\x6f\x67\x0a\x74"),
(RX, b"\x19\x68\x65\x20\x63\x72\x61\x7a"),
(RX, b"\x1a\x79\x20\x66\x6f\x78\x20\x6a"),
(RX, b"\x1b\x75\x6d\x70\x73\x20\x6f\x76"),
(RX, b"\x1c\x65\x72\x20\x74\x68\x65\x20"),
(RX, b"\x1d\x6c\x61\x7a\x79\x20\x64\x6f"),
(RX, b"\x1e\x67\x0a\x74\x68\x65\x20\x63"),
(RX, b"\x1f\x72\x61\x7a\x79\x20\x66\x6f"),
(RX, b"\x20\x78\x20\x6a\x75\x6d\x70\x73"),
(RX, b"\x21\x20\x6f\x76\x65\x72\x20\x74"),
(RX, b"\x22\x68\x65\x20\x6c\x61\x7a\x79"),
(RX, b"\xa3\x20\x64\x6f\x67\x0a\x00\x00"),
(TX, b"\xa2\x23\x7f\x00\x00\x00\x00\x00"),
(RX, b"\xc9\x3b\x49\x00\x00\x00\x00\x00"),
(TX, b"\xa1\x00\x00\x00\x00\x00\x00\x00"),
]
data = []
with self.network[2].sdo[0x1008].open("r", block_transfer=True) as fp:
data = fp.read()
assert data == 39 * "the crazy fox jumps over the lazy dog\n"

def test_writable_file(self):
self.data = [
(TX, b'\x20\x00\x20\x00\x00\x00\x00\x00'),
Expand Down

0 comments on commit 4725972

Please sign in to comment.