Skip to content

Commit 4725972

Browse files
author
Samuel Lee
committed
Test : add a block retransmit test. this test is passes with this implementation but will fail with an invalid CRC without fix for discarded segments
1 parent 1a74fb6 commit 4725972

File tree

1 file changed

+308
-0
lines changed

1 file changed

+308
-0
lines changed

test/test_sdo.py

Lines changed: 308 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,314 @@ def test_block_upload(self):
170170
data = fp.read()
171171
self.assertEqual(data, 'Tiny Node - Mega Domains !')
172172

173+
def test_sdo_block_upload_retransmit(self):
174+
"""Send 'the crazy fox jumps over the lazy dog\n' multiple times
175+
and trigger a retransmit by only validating a block partially.
176+
"""
177+
self.data = [
178+
(TX, b"\xa4\x08\x10\x00\x7f\x00\x00\x00"),
179+
(RX, b"\xc4\x08\x10\x00\x00\x00\x00\x00"),
180+
(TX, b"\xa3\x00\x00\x00\x00\x00\x00\x00"),
181+
(RX, b"\x01\x74\x68\x65\x20\x63\x72\x61"),
182+
(RX, b"\x02\x7a\x79\x20\x66\x6f\x78\x20"),
183+
(RX, b"\x03\x6a\x75\x6d\x70\x73\x20\x6f"),
184+
(RX, b"\x04\x76\x65\x72\x20\x74\x68\x65"),
185+
(RX, b"\x05\x20\x6c\x61\x7a\x79\x20\x64"),
186+
(RX, b"\x06\x6f\x67\x0a\x74\x68\x65\x20"),
187+
(RX, b"\x07\x63\x72\x61\x7a\x79\x20\x66"),
188+
(RX, b"\x08\x6f\x78\x20\x6a\x75\x6d\x70"),
189+
(RX, b"\x09\x73\x20\x6f\x76\x65\x72\x20"),
190+
(RX, b"\x0a\x74\x68\x65\x20\x6c\x61\x7a"),
191+
(RX, b"\x0b\x79\x20\x64\x6f\x67\x0a\x74"),
192+
(RX, b"\x0c\x68\x65\x20\x63\x72\x61\x7a"),
193+
(RX, b"\x0d\x79\x20\x66\x6f\x78\x20\x6a"),
194+
(RX, b"\x0e\x75\x6d\x70\x73\x20\x6f\x76"),
195+
(RX, b"\x0f\x65\x72\x20\x74\x68\x65\x20"),
196+
(RX, b"\x10\x6c\x61\x7a\x79\x20\x64\x6f"),
197+
(RX, b"\x11\x67\x0a\x74\x68\x65\x20\x63"),
198+
(RX, b"\x12\x72\x61\x7a\x79\x20\x66\x6f"),
199+
(RX, b"\x13\x78\x20\x6a\x75\x6d\x70\x73"),
200+
(RX, b"\x14\x20\x6f\x76\x65\x72\x20\x74"),
201+
(RX, b"\x15\x68\x65\x20\x6c\x61\x7a\x79"),
202+
(RX, b"\x16\x20\x64\x6f\x67\x0a\x74\x68"),
203+
(RX, b"\x17\x65\x20\x63\x72\x61\x7a\x79"),
204+
(RX, b"\x18\x20\x66\x6f\x78\x20\x6a\x75"),
205+
(RX, b"\x19\x6d\x70\x73\x20\x6f\x76\x65"),
206+
(RX, b"\x1a\x72\x20\x74\x68\x65\x20\x6c"),
207+
(RX, b"\x1b\x61\x7a\x79\x20\x64\x6f\x67"),
208+
(RX, b"\x1c\x0a\x74\x68\x65\x20\x63\x72"),
209+
(RX, b"\x1d\x61\x7a\x79\x20\x66\x6f\x78"),
210+
(RX, b"\x1e\x20\x6a\x75\x6d\x70\x73\x20"),
211+
(RX, b"\x1f\x6f\x76\x65\x72\x20\x74\x68"),
212+
(RX, b"\x20\x65\x20\x6c\x61\x7a\x79\x20"),
213+
(RX, b"\x21\x64\x6f\x67\x0a\x74\x68\x65"),
214+
(RX, b"\x22\x20\x63\x72\x61\x7a\x79\x20"),
215+
(RX, b"\x23\x66\x6f\x78\x20\x6a\x75\x6d"),
216+
(RX, b"\x24\x70\x73\x20\x6f\x76\x65\x72"),
217+
(RX, b"\x25\x20\x74\x68\x65\x20\x6c\x61"),
218+
(RX, b"\x26\x7a\x79\x20\x64\x6f\x67\x0a"),
219+
(RX, b"\x27\x74\x68\x65\x20\x63\x72\x61"),
220+
(RX, b"\x28\x7a\x79\x20\x66\x6f\x78\x20"),
221+
(RX, b"\x29\x6a\x75\x6d\x70\x73\x20\x6f"),
222+
(RX, b"\x2a\x76\x65\x72\x20\x74\x68\x65"),
223+
(RX, b"\x2b\x20\x6c\x61\x7a\x79\x20\x64"),
224+
(RX, b"\x2c\x6f\x67\x0a\x74\x68\x65\x20"),
225+
(RX, b"\x2d\x63\x72\x61\x7a\x79\x20\x66"),
226+
(RX, b"\x2e\x6f\x78\x20\x6a\x75\x6d\x70"),
227+
(RX, b"\x2f\x73\x20\x6f\x76\x65\x72\x20"),
228+
(RX, b"\x30\x74\x68\x65\x20\x6c\x61\x7a"),
229+
(RX, b"\x31\x79\x20\x64\x6f\x67\x0a\x74"),
230+
(RX, b"\x32\x68\x65\x20\x63\x72\x61\x7a"),
231+
(RX, b"\x34\x79\x20\x66\x6f\x78\x20\x6a"),
232+
(RX, b"\x34\x75\x6d\x70\x73\x20\x6f\x76"), # Wrong seqno (x34 instead of x32)
233+
(RX, b"\x35\x65\x72\x20\x74\x68\x65\x20"),
234+
(RX, b"\x36\x6c\x61\x7a\x79\x20\x64\x6f"),
235+
(RX, b"\x37\x67\x0a\x74\x68\x65\x20\x63"),
236+
(RX, b"\x38\x72\x61\x7a\x79\x20\x66\x6f"),
237+
(RX, b"\x39\x78\x20\x6a\x75\x6d\x70\x73"),
238+
(RX, b"\x3a\x20\x6f\x76\x65\x72\x20\x74"),
239+
(RX, b"\x3b\x68\x65\x20\x6c\x61\x7a\x79"),
240+
(RX, b"\x3c\x20\x64\x6f\x67\x0a\x74\x68"),
241+
(RX, b"\x3d\x65\x20\x63\x72\x61\x7a\x79"),
242+
(RX, b"\x3e\x20\x66\x6f\x78\x20\x6a\x75"),
243+
(RX, b"\x3f\x6d\x70\x73\x20\x6f\x76\x65"),
244+
(RX, b"\x40\x72\x20\x74\x68\x65\x20\x6c"),
245+
(RX, b"\x41\x61\x7a\x79\x20\x64\x6f\x67"),
246+
(RX, b"\x42\x0a\x74\x68\x65\x20\x63\x72"),
247+
(RX, b"\x43\x61\x7a\x79\x20\x66\x6f\x78"),
248+
(RX, b"\x44\x20\x6a\x75\x6d\x70\x73\x20"),
249+
(RX, b"\x45\x6f\x76\x65\x72\x20\x74\x68"),
250+
(RX, b"\x46\x65\x20\x6c\x61\x7a\x79\x20"),
251+
(RX, b"\x47\x64\x6f\x67\x0a\x74\x68\x65"),
252+
(RX, b"\x48\x20\x63\x72\x61\x7a\x79\x20"),
253+
(RX, b"\x49\x66\x6f\x78\x20\x6a\x75\x6d"),
254+
(RX, b"\x4a\x70\x73\x20\x6f\x76\x65\x72"),
255+
(RX, b"\x4b\x20\x74\x68\x65\x20\x6c\x61"),
256+
(RX, b"\x4c\x7a\x79\x20\x64\x6f\x67\x0a"),
257+
(RX, b"\x4d\x74\x68\x65\x20\x63\x72\x61"),
258+
(RX, b"\x4e\x7a\x79\x20\x66\x6f\x78\x20"),
259+
(RX, b"\x4f\x6a\x75\x6d\x70\x73\x20\x6f"),
260+
(RX, b"\x50\x76\x65\x72\x20\x74\x68\x65"),
261+
(RX, b"\x51\x20\x6c\x61\x7a\x79\x20\x64"),
262+
(RX, b"\x52\x6f\x67\x0a\x74\x68\x65\x20"),
263+
(RX, b"\x53\x63\x72\x61\x7a\x79\x20\x66"),
264+
(RX, b"\x54\x6f\x78\x20\x6a\x75\x6d\x70"),
265+
(RX, b"\x55\x73\x20\x6f\x76\x65\x72\x20"),
266+
(RX, b"\x56\x74\x68\x65\x20\x6c\x61\x7a"),
267+
(RX, b"\x57\x79\x20\x64\x6f\x67\x0a\x74"),
268+
(RX, b"\x58\x68\x65\x20\x63\x72\x61\x7a"),
269+
(RX, b"\x59\x79\x20\x66\x6f\x78\x20\x6a"),
270+
(RX, b"\x5a\x75\x6d\x70\x73\x20\x6f\x76"),
271+
(RX, b"\x5b\x65\x72\x20\x74\x68\x65\x20"),
272+
(RX, b"\x5c\x6c\x61\x7a\x79\x20\x64\x6f"),
273+
(RX, b"\x5d\x67\x0a\x74\x68\x65\x20\x63"),
274+
(RX, b"\x5e\x72\x61\x7a\x79\x20\x66\x6f"),
275+
(RX, b"\x5f\x78\x20\x6a\x75\x6d\x70\x73"),
276+
(RX, b"\x60\x20\x6f\x76\x65\x72\x20\x74"),
277+
(RX, b"\x61\x68\x65\x20\x6c\x61\x7a\x79"),
278+
(RX, b"\x62\x20\x64\x6f\x67\x0a\x74\x68"),
279+
(RX, b"\x63\x65\x20\x63\x72\x61\x7a\x79"),
280+
(RX, b"\x64\x20\x66\x6f\x78\x20\x6a\x75"),
281+
(RX, b"\x65\x6d\x70\x73\x20\x6f\x76\x65"),
282+
(RX, b"\x66\x72\x20\x74\x68\x65\x20\x6c"),
283+
(RX, b"\x67\x61\x7a\x79\x20\x64\x6f\x67"),
284+
(RX, b"\x68\x0a\x74\x68\x65\x20\x63\x72"),
285+
(RX, b"\x69\x61\x7a\x79\x20\x66\x6f\x78"),
286+
(RX, b"\x6a\x20\x6a\x75\x6d\x70\x73\x20"),
287+
(RX, b"\x6b\x6f\x76\x65\x72\x20\x74\x68"),
288+
(RX, b"\x6c\x65\x20\x6c\x61\x7a\x79\x20"),
289+
(RX, b"\x6d\x64\x6f\x67\x0a\x74\x68\x65"),
290+
(RX, b"\x6e\x20\x63\x72\x61\x7a\x79\x20"),
291+
(RX, b"\x6f\x66\x6f\x78\x20\x6a\x75\x6d"),
292+
(RX, b"\x70\x70\x73\x20\x6f\x76\x65\x72"),
293+
(RX, b"\x71\x20\x74\x68\x65\x20\x6c\x61"),
294+
(RX, b"\x72\x7a\x79\x20\x64\x6f\x67\x0a"),
295+
(RX, b"\x73\x74\x68\x65\x20\x63\x72\x61"),
296+
(RX, b"\x74\x7a\x79\x20\x66\x6f\x78\x20"),
297+
(RX, b"\x75\x6a\x75\x6d\x70\x73\x20\x6f"),
298+
(RX, b"\x76\x76\x65\x72\x20\x74\x68\x65"),
299+
(RX, b"\x77\x20\x6c\x61\x7a\x79\x20\x64"),
300+
(RX, b"\x78\x6f\x67\x0a\x74\x68\x65\x20"),
301+
(RX, b"\x79\x63\x72\x61\x7a\x79\x20\x66"),
302+
(RX, b"\x7a\x6f\x78\x20\x6a\x75\x6d\x70"),
303+
(RX, b"\x7b\x73\x20\x6f\x76\x65\x72\x20"),
304+
(RX, b"\x7c\x74\x68\x65\x20\x6c\x61\x7a"),
305+
(RX, b"\x7d\x79\x20\x64\x6f\x67\x0a\x74"),
306+
(RX, b"\x7e\x68\x65\x20\x63\x72\x61\x7a"),
307+
(RX, b"\x7f\x79\x20\x66\x6f\x78\x20\x6a"),
308+
(TX, b"\xa2\x32\x7f\x00\x00\x00\x00\x00"), # Last good seqno (x32)
309+
(RX, b"\x01\x79\x20\x66\x6f\x78\x20\x6a"), # Start resending from last acknowledged block
310+
(RX, b"\x02\x75\x6d\x70\x73\x20\x6f\x76"),
311+
(RX, b"\x03\x65\x72\x20\x74\x68\x65\x20"),
312+
(RX, b"\x04\x6c\x61\x7a\x79\x20\x64\x6f"),
313+
(RX, b"\x05\x67\x0a\x74\x68\x65\x20\x63"),
314+
(RX, b"\x06\x72\x61\x7a\x79\x20\x66\x6f"),
315+
(RX, b"\x07\x78\x20\x6a\x75\x6d\x70\x73"),
316+
(RX, b"\x08\x20\x6f\x76\x65\x72\x20\x74"),
317+
(RX, b"\x09\x68\x65\x20\x6c\x61\x7a\x79"),
318+
(RX, b"\x0a\x20\x64\x6f\x67\x0a\x74\x68"),
319+
(RX, b"\x0b\x65\x20\x63\x72\x61\x7a\x79"),
320+
(RX, b"\x0c\x20\x66\x6f\x78\x20\x6a\x75"),
321+
(RX, b"\x0d\x6d\x70\x73\x20\x6f\x76\x65"),
322+
(RX, b"\x0e\x72\x20\x74\x68\x65\x20\x6c"),
323+
(RX, b"\x0f\x61\x7a\x79\x20\x64\x6f\x67"),
324+
(RX, b"\x10\x0a\x74\x68\x65\x20\x63\x72"),
325+
(RX, b"\x11\x61\x7a\x79\x20\x66\x6f\x78"),
326+
(RX, b"\x12\x20\x6a\x75\x6d\x70\x73\x20"),
327+
(RX, b"\x13\x6f\x76\x65\x72\x20\x74\x68"),
328+
(RX, b"\x14\x65\x20\x6c\x61\x7a\x79\x20"),
329+
(RX, b"\x15\x64\x6f\x67\x0a\x74\x68\x65"),
330+
(RX, b"\x16\x20\x63\x72\x61\x7a\x79\x20"),
331+
(RX, b"\x17\x66\x6f\x78\x20\x6a\x75\x6d"),
332+
(RX, b"\x18\x70\x73\x20\x6f\x76\x65\x72"),
333+
(RX, b"\x19\x20\x74\x68\x65\x20\x6c\x61"),
334+
(RX, b"\x1a\x7a\x79\x20\x64\x6f\x67\x0a"),
335+
(RX, b"\x1b\x74\x68\x65\x20\x63\x72\x61"),
336+
(RX, b"\x1c\x7a\x79\x20\x66\x6f\x78\x20"),
337+
(RX, b"\x1d\x6a\x75\x6d\x70\x73\x20\x6f"),
338+
(RX, b"\x1e\x76\x65\x72\x20\x74\x68\x65"),
339+
(RX, b"\x1f\x20\x6c\x61\x7a\x79\x20\x64"),
340+
(RX, b"\x20\x6f\x67\x0a\x74\x68\x65\x20"),
341+
(RX, b"\x21\x63\x72\x61\x7a\x79\x20\x66"),
342+
(RX, b"\x22\x6f\x78\x20\x6a\x75\x6d\x70"),
343+
(RX, b"\x23\x73\x20\x6f\x76\x65\x72\x20"),
344+
(RX, b"\x24\x74\x68\x65\x20\x6c\x61\x7a"),
345+
(RX, b"\x25\x79\x20\x64\x6f\x67\x0a\x74"),
346+
(RX, b"\x26\x68\x65\x20\x63\x72\x61\x7a"),
347+
(RX, b"\x27\x79\x20\x66\x6f\x78\x20\x6a"),
348+
(RX, b"\x28\x75\x6d\x70\x73\x20\x6f\x76"),
349+
(RX, b"\x29\x65\x72\x20\x74\x68\x65\x20"),
350+
(RX, b"\x2a\x6c\x61\x7a\x79\x20\x64\x6f"),
351+
(RX, b"\x2b\x67\x0a\x74\x68\x65\x20\x63"),
352+
(RX, b"\x2c\x72\x61\x7a\x79\x20\x66\x6f"),
353+
(RX, b"\x2d\x78\x20\x6a\x75\x6d\x70\x73"),
354+
(RX, b"\x2e\x20\x6f\x76\x65\x72\x20\x74"),
355+
(RX, b"\x2f\x68\x65\x20\x6c\x61\x7a\x79"),
356+
(RX, b"\x30\x20\x64\x6f\x67\x0a\x74\x68"),
357+
(RX, b"\x31\x65\x20\x63\x72\x61\x7a\x79"),
358+
(RX, b"\x32\x20\x66\x6f\x78\x20\x6a\x75"),
359+
(RX, b"\x33\x6d\x70\x73\x20\x6f\x76\x65"),
360+
(RX, b"\x34\x72\x20\x74\x68\x65\x20\x6c"),
361+
(RX, b"\x35\x61\x7a\x79\x20\x64\x6f\x67"),
362+
(RX, b"\x36\x0a\x74\x68\x65\x20\x63\x72"),
363+
(RX, b"\x37\x61\x7a\x79\x20\x66\x6f\x78"),
364+
(RX, b"\x38\x20\x6a\x75\x6d\x70\x73\x20"),
365+
(RX, b"\x39\x6f\x76\x65\x72\x20\x74\x68"),
366+
(RX, b"\x3a\x65\x20\x6c\x61\x7a\x79\x20"),
367+
(RX, b"\x3b\x64\x6f\x67\x0a\x74\x68\x65"),
368+
(RX, b"\x3c\x20\x63\x72\x61\x7a\x79\x20"),
369+
(RX, b"\x3d\x66\x6f\x78\x20\x6a\x75\x6d"),
370+
(RX, b"\x3e\x70\x73\x20\x6f\x76\x65\x72"),
371+
(RX, b"\x3f\x20\x74\x68\x65\x20\x6c\x61"),
372+
(RX, b"\x40\x7a\x79\x20\x64\x6f\x67\x0a"),
373+
(RX, b"\x41\x74\x68\x65\x20\x63\x72\x61"),
374+
(RX, b"\x42\x7a\x79\x20\x66\x6f\x78\x20"),
375+
(RX, b"\x43\x6a\x75\x6d\x70\x73\x20\x6f"),
376+
(RX, b"\x44\x76\x65\x72\x20\x74\x68\x65"),
377+
(RX, b"\x45\x20\x6c\x61\x7a\x79\x20\x64"),
378+
(RX, b"\x46\x6f\x67\x0a\x74\x68\x65\x20"),
379+
(RX, b"\x47\x63\x72\x61\x7a\x79\x20\x66"),
380+
(RX, b"\x48\x6f\x78\x20\x6a\x75\x6d\x70"),
381+
(RX, b"\x49\x73\x20\x6f\x76\x65\x72\x20"),
382+
(RX, b"\x4a\x74\x68\x65\x20\x6c\x61\x7a"),
383+
(RX, b"\x4b\x79\x20\x64\x6f\x67\x0a\x74"),
384+
(RX, b"\x4c\x68\x65\x20\x63\x72\x61\x7a"),
385+
(RX, b"\x4d\x79\x20\x66\x6f\x78\x20\x6a"),
386+
(RX, b"\x4e\x75\x6d\x70\x73\x20\x6f\x76"),
387+
(RX, b"\x4f\x65\x72\x20\x74\x68\x65\x20"),
388+
(RX, b"\x50\x6c\x61\x7a\x79\x20\x64\x6f"),
389+
(RX, b"\x51\x67\x0a\x74\x68\x65\x20\x63"),
390+
(RX, b"\x52\x72\x61\x7a\x79\x20\x66\x6f"),
391+
(RX, b"\x53\x78\x20\x6a\x75\x6d\x70\x73"),
392+
(RX, b"\x54\x20\x6f\x76\x65\x72\x20\x74"),
393+
(RX, b"\x55\x68\x65\x20\x6c\x61\x7a\x79"),
394+
(RX, b"\x56\x20\x64\x6f\x67\x0a\x74\x68"),
395+
(RX, b"\x57\x65\x20\x63\x72\x61\x7a\x79"),
396+
(RX, b"\x58\x20\x66\x6f\x78\x20\x6a\x75"),
397+
(RX, b"\x59\x6d\x70\x73\x20\x6f\x76\x65"),
398+
(RX, b"\x5a\x72\x20\x74\x68\x65\x20\x6c"),
399+
(RX, b"\x5b\x61\x7a\x79\x20\x64\x6f\x67"),
400+
(RX, b"\x5c\x0a\x74\x68\x65\x20\x63\x72"),
401+
(RX, b"\x5d\x61\x7a\x79\x20\x66\x6f\x78"),
402+
(RX, b"\x5e\x20\x6a\x75\x6d\x70\x73\x20"),
403+
(RX, b"\x5f\x6f\x76\x65\x72\x20\x74\x68"),
404+
(RX, b"\x60\x65\x20\x6c\x61\x7a\x79\x20"),
405+
(RX, b"\x61\x64\x6f\x67\x0a\x74\x68\x65"),
406+
(RX, b"\x62\x20\x63\x72\x61\x7a\x79\x20"),
407+
(RX, b"\x63\x66\x6f\x78\x20\x6a\x75\x6d"),
408+
(RX, b"\x64\x70\x73\x20\x6f\x76\x65\x72"),
409+
(RX, b"\x65\x20\x74\x68\x65\x20\x6c\x61"),
410+
(RX, b"\x66\x7a\x79\x20\x64\x6f\x67\x0a"),
411+
(RX, b"\x67\x74\x68\x65\x20\x63\x72\x61"),
412+
(RX, b"\x68\x7a\x79\x20\x66\x6f\x78\x20"),
413+
(RX, b"\x69\x6a\x75\x6d\x70\x73\x20\x6f"),
414+
(RX, b"\x6a\x76\x65\x72\x20\x74\x68\x65"),
415+
(RX, b"\x6b\x20\x6c\x61\x7a\x79\x20\x64"),
416+
(RX, b"\x6c\x6f\x67\x0a\x74\x68\x65\x20"),
417+
(RX, b"\x6d\x63\x72\x61\x7a\x79\x20\x66"),
418+
(RX, b"\x6e\x6f\x78\x20\x6a\x75\x6d\x70"),
419+
(RX, b"\x6f\x73\x20\x6f\x76\x65\x72\x20"),
420+
(RX, b"\x70\x74\x68\x65\x20\x6c\x61\x7a"),
421+
(RX, b"\x71\x79\x20\x64\x6f\x67\x0a\x74"),
422+
(RX, b"\x72\x68\x65\x20\x63\x72\x61\x7a"),
423+
(RX, b"\x73\x79\x20\x66\x6f\x78\x20\x6a"),
424+
(RX, b"\x74\x75\x6d\x70\x73\x20\x6f\x76"),
425+
(RX, b"\x75\x65\x72\x20\x74\x68\x65\x20"),
426+
(RX, b"\x76\x6c\x61\x7a\x79\x20\x64\x6f"),
427+
(RX, b"\x77\x67\x0a\x74\x68\x65\x20\x63"),
428+
(RX, b"\x78\x72\x61\x7a\x79\x20\x66\x6f"),
429+
(RX, b"\x79\x78\x20\x6a\x75\x6d\x70\x73"),
430+
(RX, b"\x7a\x20\x6f\x76\x65\x72\x20\x74"),
431+
(RX, b"\x7b\x68\x65\x20\x6c\x61\x7a\x79"),
432+
(RX, b"\x7c\x20\x64\x6f\x67\x0a\x74\x68"),
433+
(RX, b"\x7d\x65\x20\x63\x72\x61\x7a\x79"),
434+
(RX, b"\x7e\x20\x66\x6f\x78\x20\x6a\x75"),
435+
(RX, b"\x7f\x6d\x70\x73\x20\x6f\x76\x65"),
436+
(TX, b"\xa2\x7f\x7f\x00\x00\x00\x00\x00"),
437+
(RX, b"\x01\x72\x20\x74\x68\x65\x20\x6c"),
438+
(RX, b"\x02\x61\x7a\x79\x20\x64\x6f\x67"),
439+
(RX, b"\x03\x0a\x74\x68\x65\x20\x63\x72"),
440+
(RX, b"\x04\x61\x7a\x79\x20\x66\x6f\x78"),
441+
(RX, b"\x05\x20\x6a\x75\x6d\x70\x73\x20"),
442+
(RX, b"\x06\x6f\x76\x65\x72\x20\x74\x68"),
443+
(RX, b"\x07\x65\x20\x6c\x61\x7a\x79\x20"),
444+
(RX, b"\x08\x64\x6f\x67\x0a\x74\x68\x65"),
445+
(RX, b"\x09\x20\x63\x72\x61\x7a\x79\x20"),
446+
(RX, b"\x0a\x66\x6f\x78\x20\x6a\x75\x6d"),
447+
(RX, b"\x0b\x70\x73\x20\x6f\x76\x65\x72"),
448+
(RX, b"\x0c\x20\x74\x68\x65\x20\x6c\x61"),
449+
(RX, b"\x0d\x7a\x79\x20\x64\x6f\x67\x0a"),
450+
(RX, b"\x0e\x74\x68\x65\x20\x63\x72\x61"),
451+
(RX, b"\x0f\x7a\x79\x20\x66\x6f\x78\x20"),
452+
(RX, b"\x10\x6a\x75\x6d\x70\x73\x20\x6f"),
453+
(RX, b"\x11\x76\x65\x72\x20\x74\x68\x65"),
454+
(RX, b"\x12\x20\x6c\x61\x7a\x79\x20\x64"),
455+
(RX, b"\x13\x6f\x67\x0a\x74\x68\x65\x20"),
456+
(RX, b"\x14\x63\x72\x61\x7a\x79\x20\x66"),
457+
(RX, b"\x15\x6f\x78\x20\x6a\x75\x6d\x70"),
458+
(RX, b"\x16\x73\x20\x6f\x76\x65\x72\x20"),
459+
(RX, b"\x17\x74\x68\x65\x20\x6c\x61\x7a"),
460+
(RX, b"\x18\x79\x20\x64\x6f\x67\x0a\x74"),
461+
(RX, b"\x19\x68\x65\x20\x63\x72\x61\x7a"),
462+
(RX, b"\x1a\x79\x20\x66\x6f\x78\x20\x6a"),
463+
(RX, b"\x1b\x75\x6d\x70\x73\x20\x6f\x76"),
464+
(RX, b"\x1c\x65\x72\x20\x74\x68\x65\x20"),
465+
(RX, b"\x1d\x6c\x61\x7a\x79\x20\x64\x6f"),
466+
(RX, b"\x1e\x67\x0a\x74\x68\x65\x20\x63"),
467+
(RX, b"\x1f\x72\x61\x7a\x79\x20\x66\x6f"),
468+
(RX, b"\x20\x78\x20\x6a\x75\x6d\x70\x73"),
469+
(RX, b"\x21\x20\x6f\x76\x65\x72\x20\x74"),
470+
(RX, b"\x22\x68\x65\x20\x6c\x61\x7a\x79"),
471+
(RX, b"\xa3\x20\x64\x6f\x67\x0a\x00\x00"),
472+
(TX, b"\xa2\x23\x7f\x00\x00\x00\x00\x00"),
473+
(RX, b"\xc9\x3b\x49\x00\x00\x00\x00\x00"),
474+
(TX, b"\xa1\x00\x00\x00\x00\x00\x00\x00"),
475+
]
476+
data = []
477+
with self.network[2].sdo[0x1008].open("r", block_transfer=True) as fp:
478+
data = fp.read()
479+
assert data == 39 * "the crazy fox jumps over the lazy dog\n"
480+
173481
def test_writable_file(self):
174482
self.data = [
175483
(TX, b'\x20\x00\x20\x00\x00\x00\x00\x00'),

0 commit comments

Comments
 (0)