Exemplo n.º 1
0
    def test_fullReceive(self):
        msg = toSendBuffer(self.sampleBuffer)
        msglen = len(msg)

        rcv = ReceiveBuffer()
        assert not rcv.isDone(), 'initial ReceiveBuffer isDone test'

        rcv.addMore(msg)

        self.finalTests(rcv, self.sampleBuffer, 'completion')
Exemplo n.º 2
0
    def test_fullReceiveTinyMessage(self):
        msg = toSendBuffer('I')
        msglen = len(msg)

        rcv = ReceiveBuffer()
        self.assertFalse(rcv.isDone(), 'initial ReceiveBuffer isDone test')

        rcv.addMore(msg)

        self.finalTests(rcv, 'I', 'completion')
Exemplo n.º 3
0
    def test_fullReceive(self):
        msg = toSendBuffer(self.sampleBuffer)
        msglen = len(msg)

        rcv = ReceiveBuffer()
        assert not rcv.isDone(), 'initial ReceiveBuffer isDone test'

        rcv.addMore(msg)

        self.finalTests(rcv, self.sampleBuffer, 'completion')
Exemplo n.º 4
0
    def test_fullReceiveTinyMessage(self):
        msg = toSendBuffer('I')
        msglen = len(msg)

        rcv = ReceiveBuffer()
        assert not rcv.isDone(), 'initial ReceiveBuffer isDone test'

        rcv.addMore(msg)

        self.finalTests(rcv, 'I', 'completion')
Exemplo n.º 5
0
    def test_fullReceiveHugeMessage(self):
        bigMessage = 'I' * 1024 * 1024 * 100  # 100MB
        msg = toSendBuffer(bigMessage)
        msglen = len(msg)

        rcv = ReceiveBuffer()
        assert not rcv.isDone(), 'initial ReceiveBuffer isDone test'

        rcv.addMore(msg)

        self.finalTests(rcv, bigMessage, 'completion')
Exemplo n.º 6
0
    def test_fullReceiveHugeMessage(self):
        bigMessage = 'I' * 1024 * 1024 * 100   # 100MB
        msg = toSendBuffer(bigMessage)
        msglen = len(msg)

        rcv = ReceiveBuffer()
        self.assertFalse(rcv.isDone(), 'initial ReceiveBuffer isDone test')

        rcv.addMore(msg)

        self.finalTests(rcv, bigMessage, 'completion')
Exemplo n.º 7
0
    def test_singleBreakAtVariousPoints(self):
        msg = toSendBuffer(self.sampleBuffer)
        msglen = len(msg)
        for point in range(msglen):
            rcv = ReceiveBuffer()
            self.assertFalse(rcv.isDone(), 'initial ReceiveBuffer isDone test')

            rcv.addMore(msg[:point])
            self.partialTests(rcv, point, msglen, 'sample message first add @ %s'%point)

            rcv.addMore(msg[point:])
            self.finalTests(rcv, self.sampleBuffer, 'sample message completion @ %s'%point)
Exemplo n.º 8
0
    def test_singleBreakAtVariousPointsBigMessage(self):
        bigMessage = '0123456789' * 1024 * 1024 * 10   # 100MB
        msg = toSendBuffer(bigMessage)
        msglen = len(msg)
        for point in fibonacci(msglen):
            rcv = ReceiveBuffer()
            self.assertFalse(rcv.isDone(), 'initial ReceiveBuffer isDone test')

            rcv.addMore(msg[:point])
            self.partialTests(rcv, point, msglen, 'big message first add @ %s'%point)

            rcv.addMore(msg[point:])
            self.finalTests(rcv, bigMessage, 'big message completion @ %s'%point)
Exemplo n.º 9
0
    def test_singleBreakAtVariousPoints(self):
        msg = toSendBuffer(self.sampleBuffer)
        msglen = len(msg)
        for point in range(msglen):
            rcv = ReceiveBuffer()
            assert not rcv.isDone(), 'initial ReceiveBuffer isDone test'

            rcv.addMore(msg[:point])
            self.partialTests(rcv, point, msglen,
                              'sample message first add @ %s' % point)

            rcv.addMore(msg[point:])
            self.finalTests(rcv, self.sampleBuffer,
                            'sample message completion @ %s' % point)
Exemplo n.º 10
0
    def test_singleBreakAtVariousPointsBigMessage(self):
        bigMessage = '0123456789' * 1024 * 1024 * 10  # 100MB
        msg = toSendBuffer(bigMessage)
        msglen = len(msg)
        for point in fibonacci(msglen):
            rcv = ReceiveBuffer()
            assert not rcv.isDone(), 'initial ReceiveBuffer isDone test'

            rcv.addMore(msg[:point])
            self.partialTests(rcv, point, msglen,
                              'big message first add @ %s' % point)

            rcv.addMore(msg[point:])
            self.finalTests(rcv, bigMessage,
                            'big message completion @ %s' % point)
Exemplo n.º 11
0
    def test_all_points_incomplete_each_byte(self):
        message = 'hello'
        extra = b'world'
        msg = toSendBuffer(message)
        origmsglen = len(msg)
        msg += extra
        for point in range(1, origmsglen - 1):
            rcv = ReceiveBuffer()
            assert not rcv.isDone()
            assert rcv.is_empty()

            for bpos in range(point):
                rcv.addMore(msg[bpos:bpos + 1])
            assert not rcv.isDone()
            assert not rcv.is_empty()
            assert rcv.completed() is None
Exemplo n.º 12
0
    def test_all_points_incomplete_each_byte(self):
        message = 'hello'
        extra = b'world'
        msg = toSendBuffer(message)
        origmsglen = len(msg)
        msg += extra
        for point in range(1, origmsglen - 1):
            rcv = ReceiveBuffer()
            assert not rcv.isDone()
            assert rcv.is_empty()

            for bpos in range(point):
                rcv.addMore(msg[bpos:bpos+1])
            assert not rcv.isDone()
            assert not rcv.is_empty()
            assert rcv.completed() is None
Exemplo n.º 13
0
    def test_multipleBreaksAtVariousSizes(self):
        # This test is important because it breaks at *every* size,
        # meaning that all of the prefix length and corresponding
        # elements are tested in various multiple segment pieces.
        msg = toSendBuffer(self.sampleBuffer)
        msglen = len(msg)
        for partLen in range(1, msglen):
            rcv = ReceiveBuffer()
            self.assertFalse(rcv.isDone(), 'initial ReceiveBuffer isDone test')

            for partnum, point in enumerate(range(0, msglen, partLen)):
                rcv.addMore(msg[point:point+partLen])
                if point + partLen < msglen:
                    self.partialTests(rcv, point+partLen, msglen,
                                      'partial add #%d of %d' % (partnum, partLen))

            self.finalTests(rcv, self.sampleBuffer, 'completion')
Exemplo n.º 14
0
    def test_multipleBreaksAtVariousSizes(self):
        # This test is important because it breaks at *every* size,
        # meaning that all of the prefix length and corresponding
        # elements are tested in various multiple segment pieces.
        msg = toSendBuffer(self.sampleBuffer)
        msglen = len(msg)
        for partLen in range(1, msglen):
            rcv = ReceiveBuffer()
            assert not rcv.isDone(), 'initial ReceiveBuffer isDone test'

            for partnum, point in enumerate(range(0, msglen, partLen)):
                rcv.addMore(msg[point:point + partLen])
                if point + partLen < msglen:
                    self.partialTests(
                        rcv, point + partLen, msglen,
                        'partial add #%d of %d' % (partnum, partLen))

            self.finalTests(rcv, self.sampleBuffer, 'completion')
Exemplo n.º 15
0
    def test_all_points_extra(self):
        message = 'hello'
        extra = b'world'
        msg = toSendBuffer(message)
        origmsglen = len(msg)
        msg += extra
        for point in range(origmsglen + 1, len(msg)):
            rcv = ReceiveBuffer()
            assert not rcv.isDone()
            assert rcv.is_empty()

            rcv.addMore(msg[:point])
            assert rcv.isDone()
            assert not rcv.is_empty()

            print(rcv.completed())
            rmsg, rextra = rcv.completed()
            assert rmsg == message
            assert rextra == extra[:point - origmsglen]
Exemplo n.º 16
0
    def test_exact(self):
        message = 'hello'
        extra = b'world'
        msg = toSendBuffer(message)
        origmsglen = len(msg)
        msg += extra

        rcv = ReceiveBuffer()
        assert not rcv.isDone()
        assert rcv.is_empty()

        rcv.addMore(msg[:origmsglen])
        assert rcv.isDone()
        assert not rcv.is_empty()
        # py.test bug, cannot just: assert rcv.completed() == message, b''
        rmsg, rextra = rcv.completed()
        print(rmsg, rextra)
        assert rmsg == message
        assert b'' == rextra
Exemplo n.º 17
0
    def test_all_points_extra(self):
        message = 'hello'
        extra = b'world'
        msg = toSendBuffer(message)
        origmsglen = len(msg)
        msg += extra
        for point in range(origmsglen+1, len(msg)):
            rcv = ReceiveBuffer()
            assert not rcv.isDone()
            assert rcv.is_empty()

            rcv.addMore(msg[:point])
            assert rcv.isDone()
            assert not rcv.is_empty()

            print(rcv.completed())
            rmsg, rextra = rcv.completed()
            assert rmsg == message
            assert rextra == extra[:point-origmsglen]
Exemplo n.º 18
0
    def test_exact(self):
        message = 'hello'
        extra = b'world'
        msg = toSendBuffer(message)
        origmsglen = len(msg)
        msg += extra

        rcv = ReceiveBuffer()
        assert not rcv.isDone()
        assert rcv.is_empty()

        rcv.addMore(msg[:origmsglen])
        assert rcv.isDone()
        assert not rcv.is_empty()
        # py.test bug, cannot just: assert rcv.completed() == message, b''
        rmsg, rextra = rcv.completed()
        print(rmsg, rextra)
        assert rmsg == message
        assert b'' == rextra
Exemplo n.º 19
0
    def test_multipleBreaksAtVariousBigBuffer(self):
        # This test is less specific than the
        # test_multipleBreaksAtVariousSizes because it only breaks the
        # middle of the buffer... it mostly just verifies large buffer
        # reconstruction.
        bigMessage = 'ABCDEfghij' * 1024 * 1024 * 10   # 100MB
        msg = toSendBuffer(bigMessage)
        msglen = len(msg)
        # Check last three fibonacci sizes only... don't have all day
        for partLen in [F for F in fibonacci(msglen)][-1:-3:-1]:
            if partLen < 5000: continue  # those sizes should already have been verified
            rcv = ReceiveBuffer()
            self.assertFalse(rcv.isDone(), 'initial ReceiveBuffer isDone test')

            for partnum, point in enumerate(range(0, msglen, partLen)):
                rcv.addMore(msg[point:point+partLen])
                if point + partLen < msglen:
                    self.partialTests(rcv, point+partLen, msglen,
                                      'partial add #%d of %d' % (partnum, partLen))

            self.finalTests(rcv, bigMessage, 'completion')
Exemplo n.º 20
0
    def test_multipleBreaksAtVariousBigBuffer(self):
        # This test is less specific than the
        # test_multipleBreaksAtVariousSizes because it only breaks the
        # middle of the buffer... it mostly just verifies large buffer
        # reconstruction.
        bigMessage = 'ABCDEfghij' * 1024 * 1024 * 10  # 100MB
        msg = toSendBuffer(bigMessage)
        msglen = len(msg)
        # Check last three fibonacci sizes only... don't have all day
        for partLen in [F for F in fibonacci(msglen)][-1:-3:-1]:
            if partLen < 5000:
                continue  # those sizes should already have been verified
            rcv = ReceiveBuffer()
            assert not rcv.isDone(), 'initial ReceiveBuffer isDone test'

            for partnum, point in enumerate(range(0, msglen, partLen)):
                rcv.addMore(msg[point:point + partLen])
                if point + partLen < msglen:
                    self.partialTests(
                        rcv, point + partLen, msglen,
                        'partial add #%d of %d' % (partnum, partLen))

            self.finalTests(rcv, bigMessage, 'completion')
Exemplo n.º 21
0
 def serializer(self, intent):
     return toSendBuffer((self.myAddress, intent.message), serializer.dumps)
Exemplo n.º 22
0
 def serializer(self, intent):
     return toSendBuffer((self.myAddress, intent.message), serializer.dumps)