X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=a2%2Fcode%2Fclient%2Fgen.py;h=790c1c110cdf254464bfa49f36d87297c9745b15;hb=27fb41b5f87195ca1635b918eb4f34d9505cbcfb;hp=0a8da3ac761f50ec9c4f22045f98b4c14de08850;hpb=d2bebd393c7e561b90fac2549d7f5af611f5ed1e;p=tt2015.git diff --git a/a2/code/client/gen.py b/a2/code/client/gen.py index 0a8da3a..790c1c1 100644 --- a/a2/code/client/gen.py +++ b/a2/code/client/gen.py @@ -5,13 +5,14 @@ import random import string def test( - corruptDestinationPort, - corruptSourcePort, - numSegments, - payloadSize, - outOfOrder, expectedResult, - serverPort): + numSegments=0, + dropNthPacket=-1, + corruptDestinationPort=False, + corruptSourcePort=False, + outOfOrder=False, + payloadSize=1, + serverPort=1000): msgs = [] ownSeqnr = 101 @@ -22,13 +23,14 @@ def test( ''.join(random.choice(string.ascii_letters) for _ in range(payloadSize)))) ownSeqnr += payloadSize + results = ([], msgs[:]) # Out of order if outOfOrder and len(msgs) > 1: - indexes = range(0, len(msgs)) - random.shuffle(indexes) - msgs[indexes[0]], msgs[indexes[1]] = msgs[indexes[1]], msgs[indexes[0]] - print msgs + msgs[1], msgs[2] = msgs[2], msgs[1] +# indexes = range(0, len(msgs)) +# random.shuffle(indexes) +# msgs[indexes[0]], msgs[indexes[1]] = msgs[indexes[1]], msgs[indexes[0]] sender = Sender( serverIP="127.0.0.1", @@ -39,11 +41,12 @@ def test( isVerbose=0) # isLocal is True if the interface is a local one response = sender.sendInput("S", 100, 100) + results[0].append(response) # triggers the response SA _ 101 if the server is listening on the specified port # if the server isn't listening, there are no responses - print sender.lastAckReceived - print sender.isTimeout +# print sender.lastAckReceived +# print sender.isTimeout # an example for the echo handling server if sender.isTimeout == False: # in case something was received @@ -64,32 +67,178 @@ def test( sender.senderPort = sender.senderPort+1 else: sender.senderPort = oldSourcePort - print sender.sendInput("A", seq, sender.lastSeqReceived + 1, None) - print sender.sendInput("PA", seq, sender.lastSeqReceived + 1, m) + if i == dropNthPacket: + continue + #results[0].append(sender.sendInput("A", seq, sender.lastSeqReceived + 1, None)) + results[0].append(sender.sendInput("PA", seq, sender.lastSeqReceived + 1, m)) - print sender.sendInput("FA", ownSeqnr, sender.lastSeqReceived + 1) - print sender.sendInput("RP", ownSeqnr+1, 0) + results[0].append(sender.sendInput("FA", ownSeqnr, sender.lastSeqReceived + 1)) + results[0].append(sender.sendInput("RP", ownSeqnr+1, 0)) sender.sendReset() # switch sender port - print 'Succes!' + result = [r[2] for r in results[0]] + if result == expectedResult: + print 'Success' + else: + print 'Fail' + print '{} not equal to\n{}'.format(result, expectedResult) if __name__ == '__main__': serverPort = 10000 if len(sys.argv) > 1: serverPort = int(sys.argv[1]) tcs = [ - {'expectedResult': [], +#Case 1 + {'expectedResult': [101, 102, 'm'], 'numSegments': 0, 'corruptDestinationPort': False, 'corruptSourcePort': False, - 'payloadSize': 0, + 'payloadSize': 1, + 'dropNthPacket': -1, 'outOfOrder': False}, +#Case 2 + {'expectedResult': [101, 102, 103, 'm'], + 'numSegments': 1, + 'corruptDestinationPort': False, + 'corruptSourcePort': False, + 'payloadSize': 1, + 'dropNthPacket': -1, + 'outOfOrder': False}, +#Case 3 + {'expectedResult': [101, 102, 103, 104, 105, 106, 107, 'm'], + 'numSegments': 5, + 'corruptDestinationPort': False, + 'corruptSourcePort': False, + 'payloadSize': 1, + 'dropNthPacket': -1, + 'outOfOrder': False}, +#Case 4 + {'expectedResult': [101, 65596, 65596, 131091, 196586, 262081, 327576, 327577], + 'numSegments': 5, + 'corruptDestinationPort': False, + 'corruptSourcePort': False, + 'payloadSize': 65495, + 'dropNthPacket': -1, + 'outOfOrder': False}, +#Case 5 + {'expectedResult': [101, 102, 'm', 103, 103, 'm', 'm', 'm'], + 'numSegments': 5, + 'corruptDestinationPort': True, + 'corruptSourcePort': True, + 'payloadSize': 1, + 'dropNthPacket': -1, + 'outOfOrder': True}, +#Case 6 + {'expectedResult': [101, 65596, 65596, 131091, 'm', 'm', 'm'], + 'numSegments': 5, + 'corruptDestinationPort': True, + 'corruptSourcePort': True, + 'payloadSize': 65495, + 'dropNthPacket': 2, + 'outOfOrder': False}, +#Case 7 + {'expectedResult': [101, 'm', 101, 'm', 'm', 'm', 'm', 'm'], + 'numSegments': 5, + 'corruptDestinationPort': True, + 'corruptSourcePort': True, + 'payloadSize': 1, + 'dropNthPacket': -1, + 'outOfOrder': False}, +#Case 8 + {'expectedResult': [101, 'm', 101, 'm', 'm', 'm', 'm', 'm'], + 'numSegments': 5, + 'corruptDestinationPort': True, + 'corruptSourcePort': True, + 'payloadSize': 65495, + 'dropNthPacket': -1, + 'outOfOrder': False}, +#Case 9 + {'expectedResult': [101, 102, 103, 103, 'm', 'm', 'm'], + 'numSegments': 5, + 'corruptDestinationPort': False, + 'corruptSourcePort': False, + 'payloadSize': 1, + 'dropNthPacket': 2, + 'outOfOrder': False}, +#Case 10 + {'expectedResult': [101, 65596, 131091, 131091, 'm', 'm', 'm'], + 'numSegments': 5, + 'corruptDestinationPort': False, + 'corruptSourcePort': False, + 'payloadSize': 65495, + 'dropNthPacket': 2, + 'outOfOrder': False}, +#Case 11 + {'expectedResult': [101, 65596, 65596, 'm', 'm', 'm', 'm'], + 'numSegments': 5, + 'corruptDestinationPort': True, + 'corruptSourcePort': False, + 'payloadSize': 65495, + 'dropNthPacket': 2, + 'outOfOrder': False}, +#Case 12 + {'expectedResult': [101, 65596, 65596, 65596, 131091, 'm', 'm', 'm'], + 'numSegments': 5, + 'corruptDestinationPort': False, + 'corruptSourcePort': True, + 'payloadSize': 65495, + 'dropNthPacket': -1, + 'outOfOrder': True}, +#Case 13 + {'expectedResult': [101, 'm', 'm', 'm'], + 'numSegments': 1, + 'corruptDestinationPort': True, + 'corruptSourcePort': True, + 'payloadSize': 1, + 'dropNthPacket': -1, + 'outOfOrder': False}, +#Case 14 + {'expectedResult': [101, 102, 103, 104, 'm', 104, 'm', 'm'], + 'numSegments': 5, + 'corruptDestinationPort': True, + 'corruptSourcePort': True, + 'payloadSize': 1, + 'dropNthPacket': -1, + 'outOfOrder': False}, +#Case 15 + {'expectedResult': [101, 65596, 'm', 65596, 'm', 'm', 'm', 'm'], + 'numSegments': 5, + 'corruptDestinationPort': True, + 'corruptSourcePort': True, + 'payloadSize': 65495, + 'dropNthPacket': -1, + 'outOfOrder': False}, +#Case 16 + {'expectedResult': [101, 65596, 65596, 131091, 196586, 'm', 'm', 'm'], + 'numSegments': 5, + 'corruptDestinationPort': True, + 'corruptSourcePort': True, + 'payloadSize': 65495, + 'dropNthPacket': -1, + 'outOfOrder': False}, +#Case 17 + {'expectedResult': [101, 'm', 101, 'm', 'm', 'm', 'm', 'm'], + 'numSegments': 5, + 'corruptDestinationPort': True, + 'corruptSourcePort': False, + 'payloadSize': 1, + 'dropNthPacket': -1, + 'outOfOrder': True}, +#Case 18 + {'expectedResult': [101, 65596, 65596, 'm', 'm', 'm', 'm', 'm'], + 'numSegments': 5, + 'corruptDestinationPort': True, + 'corruptSourcePort': False, + 'payloadSize': 65495, + 'dropNthPacket': -1, + 'outOfOrder': True} ] for i, d in enumerate(tcs, 1): with open('{:02d}.py'.format(i), 'w') as f: f.write("""\ #!/usr/bin/python import gen +print 'Test number: {}' gen.test({}, serverPort={}) -""".format(', '.join('{}={}'.format(k, v) for k, v in d.items()), serverPort)) +""".format(i, ', '.join('{}={}'.format(k, v) for k, v in d.items()), serverPort)) print 'Testkaas {} geschreven'.format(i)