2 from sender
import Sender
10 corruptDestinationPort
=False,
11 corruptSourcePort
=False,
19 for _
in range(numSegments
):
22 ''.join(random
.choice(string
.ascii_letters
) for _
in
24 ownSeqnr
+= payloadSize
25 results
= ([], msgs
[:])
28 if outOfOrder
and len(msgs
) > 1:
29 indexes
= range(0, len(msgs
))
30 random
.shuffle(indexes
)
31 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)
42 results
[0].append(response
)
44 # triggers the response SA _ 101 if the server is listening on the specified port
45 # if the server isn't listening, there are no responses
46 # print sender.lastAckReceived
47 # print sender.isTimeout
49 # an example for the echo handling server
50 if sender
.isTimeout
== False: # in case something was received
51 #print 'swapped {} {}'.format(indexes[0], indexes[1])
52 corruptDestinationPort
= \
53 -1 if not corruptDestinationPort
else random
.randint(0, len(msgs
))
54 oldDestinationPort
= sender
.serverPort
56 -1 if not corruptSourcePort
else random
.randint(0, len(msgs
))
57 oldSourcePort
= sender
.senderPort
58 for i
, (seq
, m
) in enumerate(msgs
):
59 if i
== corruptDestinationPort
:
60 sender
.serverPort
= sender
.serverPort
+1
62 sender
.serverPort
= oldDestinationPort
64 if i
== corruptSourcePort
:
65 sender
.senderPort
= sender
.senderPort
+1
67 sender
.senderPort
= oldSourcePort
68 results
[0].append(sender
.sendInput("A", seq
, sender
.lastSeqReceived
+ 1, None))
69 results
[0].append(sender
.sendInput("PA", seq
, sender
.lastSeqReceived
+ 1, m
))
71 results
[0].append(sender
.sendInput("FA", ownSeqnr
, sender
.lastSeqReceived
+ 1))
72 results
[0].append(sender
.sendInput("RP", ownSeqnr
+1, 0))
74 sender
.sendReset() # switch sender port
75 print 'compare results with expected results'
78 if __name__
== '__main__':
81 serverPort
= int(sys
.argv
[1])
84 {'expectedResult': [],
86 'corruptDestinationPort': False,
87 'corruptSourcePort': False,
91 {'expectedResult': [],
93 'corruptDestinationPort': False,
94 'corruptSourcePort': False,
98 {'expectedResult': [],
100 'corruptDestinationPort': False,
101 'corruptSourcePort': False,
103 'outOfOrder': False},
105 {'expectedResult': [],
107 'corruptDestinationPort': False,
108 'corruptSourcePort': False,
109 'payloadSize': 65495,
110 'outOfOrder': False},
112 for i
, d
in enumerate(tcs
, 1):
113 with
open('{:02d}.py'.format(i
), 'w') as f
:
117 gen.test({}, serverPort={})
118 """.format(', '.join('{}={}'.format(k
, v
) for k
, v
in d
.items()), serverPort
))
119 print 'Testkaas {} geschreven'.format(i
)