2 from sender
import Sender
8 corruptDestinationPort
,
19 for _
in range(numSegments
):
22 ''.join(random
.choice(string
.ascii_letters
) for _
in
24 ownSeqnr
+= payloadSize
27 if outOfOrder
and len(msgs
) > 1:
28 indexes
= range(0, len(msgs
))
29 random
.shuffle(indexes
)
30 msgs
[indexes
[0]], msgs
[indexes
[1]] = msgs
[indexes
[1]], msgs
[indexes
[0]]
35 networkInterface
="lo",
37 serverPort
=serverPort
,
40 # isLocal is True if the interface is a local one
41 response
= sender
.sendInput("S", 100, 100)
43 # triggers the response SA _ 101 if the server is listening on the specified port
44 # if the server isn't listening, there are no responses
45 print sender
.lastAckReceived
46 print sender
.isTimeout
48 # an example for the echo handling server
49 if sender
.isTimeout
== False: # in case something was received
50 #print 'swapped {} {}'.format(indexes[0], indexes[1])
51 corruptDestinationPort
= \
52 -1 if not corruptDestinationPort
else random
.randint(0, len(msgs
))
53 oldDestinationPort
= sender
.serverPort
55 -1 if not corruptSourcePort
else random
.randint(0, len(msgs
))
56 oldSourcePort
= sender
.senderPort
57 for i
, (seq
, m
) in enumerate(msgs
):
58 if i
== corruptDestinationPort
:
59 sender
.serverPort
= sender
.serverPort
+1
61 sender
.serverPort
= oldDestinationPort
63 if i
== corruptSourcePort
:
64 sender
.senderPort
= sender
.senderPort
+1
66 sender
.senderPort
= oldSourcePort
67 print sender
.sendInput("A", seq
, sender
.lastSeqReceived
+ 1, None)
68 print sender
.sendInput("PA", seq
, sender
.lastSeqReceived
+ 1, m
)
70 print sender
.sendInput("FA", ownSeqnr
, sender
.lastSeqReceived
+ 1)
71 print sender
.sendInput("RP", ownSeqnr
+1, 0)
73 sender
.sendReset() # switch sender port
76 if __name__
== '__main__':
79 serverPort
= int(sys
.argv
[1])
81 {'expectedResult': [],
83 'corruptDestinationPort': False,
84 'corruptSourcePort': False,
88 for i
, d
in enumerate(tcs
, 1):
89 with
open('{:02d}.py'.format(i
), 'w') as f
:
93 gen.test({}, serverPort={})
94 """.format(', '.join('{}={}'.format(k
, v
) for k
, v
in d
.items()), serverPort
))
95 print 'Testkaas {} geschreven'.format(i
)