Esempio n. 1
0
    t = threading.Thread(target=responder, args=(server,))
    t.start()

    for i in xrange(64, 4096, 64):
        client.send(message.Read.Request(
            reqId=1, handle=1, offset=i * 4, size=i, timeout=2000))
        resp = client.expect(
            message.Read.Response(reqId=1, status=message.SUCCESS))
        assert resp.content == generate(resp.offset, len(resp.content))

    rand = random.Random(0)

    for _ in xrange(64):
        size = (1 + rand.randrange(16 * 1024)) * 4
        offset = rand.randrange((ASSET_SIZE - size) / 4) * 4
        client.send(message.Read.Request(
            reqId=1, handle=1, offset=offset, size=size, timeout=30000))
        resp = client.expect(
            message.Read.Response(reqId=1, status=message.SUCCESS))
        assert resp.content == generate(resp.offset, len(resp.content))

    for offset in xrange(0, ASSET_SIZE, 8192):
        client.send(message.Read.Request(
            reqId=1, handle=1, offset=i, size=8192, timeout=30000))
        resp = client.expect(
            message.Read.Response(reqId=1, status=message.SUCCESS))
        assert resp.content == generate(resp.offset, len(resp.content))

    assert len(os.listdir('cache/assets')) == 1
    server.close()
Esempio n. 2
0
    conn.expect(
        message.AssetStatus(handle=1, ids=assetReq.ids,
                            status=message.SUCCESS))

    # Send a pending read-request.
    conn.send(
        message.Read.Request(reqId=1,
                             handle=1,
                             offset=0,
                             size=1024,
                             timeout=500))
    server.expect(
        message.Read.Request(handle=assetReq.handle, offset=0, size=1024))

    # Close upstream server
    server.close()
    bithorded.wait_for("Disconnected: evilservant")
    conn.expect([
        message.Read.Response(reqId=1, status=message.NOTFOUND, offset=0),
        message.AssetStatus(handle=1, status=message.NOTFOUND),
    ])

    # Reconnect upstream server
    server = TestConnection(bithorded, name='evilservant')

    # Expect a BindRead to arrive for the stale asset
    server.expect(message.BindRead(handle=assetReq.handle, ids=assetReq.ids))
    server.send(
        message.AssetStatus(handle=assetReq.handle,
                            ids=assetReq.ids,
                            size=1024,