X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=a2%2Fcode%2Fclient%2Fgen.py;h=0a8da3ac761f50ec9c4f22045f98b4c14de08850;hb=60f999428fcc82cb4fc291daa2bd2db5bc279fe4;hp=4dc28d182e0ab0460b38517bde287db94ca06127;hpb=975c6a1cdf775f0ad8d0c95c408bc60d01dca9eb;p=tt2015.git diff --git a/a2/code/client/gen.py b/a2/code/client/gen.py old mode 100755 new mode 100644 index 4dc28d1..0a8da3a --- a/a2/code/client/gen.py +++ b/a2/code/client/gen.py @@ -4,15 +4,24 @@ import sys import random import string -def test(corruptDestinationPort, corruptSourcePort, numpackets, payloadsize, outOfOrder, serverPort): +def test( + corruptDestinationPort, + corruptSourcePort, + numSegments, + payloadSize, + outOfOrder, + expectedResult, + serverPort): msgs = [] ownSeqnr = 101 # Make the messages - for _ in range(numpackets): - #msgs.append((ownSeqnr, ''.join(random.choice(string.ascii_letters) for _ in range(payloadsize)))) - msgs.append((ownSeqnr, ''.join(random.choice(string.ascii_letters) for _ in range(payloadsize)))) - ownSeqnr += payloadsize + for _ in range(numSegments): + msgs.append(( + ownSeqnr, + ''.join(random.choice(string.ascii_letters) for _ in + range(payloadSize)))) + ownSeqnr += payloadSize # Out of order if outOfOrder and len(msgs) > 1: @@ -21,7 +30,13 @@ def test(corruptDestinationPort, corruptSourcePort, numpackets, payloadsize, out msgs[indexes[0]], msgs[indexes[1]] = msgs[indexes[1]], msgs[indexes[0]] print msgs - sender = Sender(serverIP="127.0.0.1", networkInterface="lo", isLocal=True, serverPort=serverPort, waitTime=1, isVerbose=0) + sender = Sender( + serverIP="127.0.0.1", + networkInterface="lo", + isLocal=True, + serverPort=serverPort, + waitTime=1, + isVerbose=0) # isLocal is True if the interface is a local one response = sender.sendInput("S", 100, 100) @@ -33,9 +48,11 @@ def test(corruptDestinationPort, corruptSourcePort, numpackets, payloadsize, out # an example for the echo handling server if sender.isTimeout == False: # in case something was received #print 'swapped {} {}'.format(indexes[0], indexes[1]) - corruptDestinationPort = -1 if not corruptDestinationPort else random.randint(0, len(msgs)) + corruptDestinationPort = \ + -1 if not corruptDestinationPort else random.randint(0, len(msgs)) oldDestinationPort = sender.serverPort - corruptSourcePort = -1 if not corruptSourcePort else random.randint(0, len(msgs)) + corruptSourcePort = \ + -1 if not corruptSourcePort else random.randint(0, len(msgs)) oldSourcePort = sender.senderPort for i, (seq, m) in enumerate(msgs): if i == corruptDestinationPort: @@ -47,17 +64,32 @@ def test(corruptDestinationPort, corruptSourcePort, numpackets, payloadsize, out sender.senderPort = sender.senderPort+1 else: sender.senderPort = oldSourcePort - sender.sendInput("A", seq, sender.lastSeqReceived + 1, None) # send some data + print sender.sendInput("A", seq, sender.lastSeqReceived + 1, None) + print sender.sendInput("PA", seq, sender.lastSeqReceived + 1, m) - print 'response: ', sender.sendInput("FA", ownSeqnr, sender.lastSeqReceived + 1) # close connection (the echo also closes) - print 'response: ', sender.sendInput("RP", ownSeqnr+1, 0) # reset connection + print sender.sendInput("FA", ownSeqnr, sender.lastSeqReceived + 1) + print sender.sendInput("RP", ownSeqnr+1, 0) sender.sendReset() # switch sender port print 'Succes!' - if __name__ == '__main__': serverPort = 10000 if len(sys.argv) > 1: serverPort = int(sys.argv[1]) - test(corruptDestinationPort=False, corruptSourcePort=False, numpackets=2, payloadsize=1, outOfOrder=False, serverPort=serverPort) + tcs = [ + {'expectedResult': [], + 'numSegments': 0, + 'corruptDestinationPort': False, + 'corruptSourcePort': False, + 'payloadSize': 0, + 'outOfOrder': False}, + ] + for i, d in enumerate(tcs, 1): + with open('{:02d}.py'.format(i), 'w') as f: + f.write("""\ +#!/usr/bin/python +import gen +gen.test({}, serverPort={}) +""".format(', '.join('{}={}'.format(k, v) for k, v in d.items()), serverPort)) + print 'Testkaas {} geschreven'.format(i)