Search in sources :

Example 1 with PingGenerator

use of org.eclipse.jetty.http2.generator.PingGenerator in project jetty.project by eclipse.

the class PingGenerateParseTest method testPayloadAsLong.

@Test
public void testPayloadAsLong() throws Exception {
    PingGenerator generator = new PingGenerator(new HeaderGenerator());
    final List<PingFrame> frames = new ArrayList<>();
    Parser parser = new Parser(byteBufferPool, new Parser.Listener.Adapter() {

        @Override
        public void onPing(PingFrame frame) {
            frames.add(frame);
        }
    }, 4096, 8192);
    ByteBufferPool.Lease lease = new ByteBufferPool.Lease(byteBufferPool);
    PingFrame ping = new PingFrame(System.nanoTime(), true);
    generator.generate(lease, ping);
    for (ByteBuffer buffer : lease.getByteBuffers()) {
        while (buffer.hasRemaining()) {
            parser.parse(buffer);
        }
    }
    Assert.assertEquals(1, frames.size());
    PingFrame pong = frames.get(0);
    Assert.assertEquals(ping.getPayloadAsLong(), pong.getPayloadAsLong());
    Assert.assertTrue(pong.isReply());
}
Also used : MappedByteBufferPool(org.eclipse.jetty.io.MappedByteBufferPool) ByteBufferPool(org.eclipse.jetty.io.ByteBufferPool) ArrayList(java.util.ArrayList) PingGenerator(org.eclipse.jetty.http2.generator.PingGenerator) ByteBuffer(java.nio.ByteBuffer) Parser(org.eclipse.jetty.http2.parser.Parser) HeaderGenerator(org.eclipse.jetty.http2.generator.HeaderGenerator) Test(org.junit.Test)

Example 2 with PingGenerator

use of org.eclipse.jetty.http2.generator.PingGenerator in project jetty.project by eclipse.

the class PingGenerateParseTest method testGenerateParseOneByteAtATime.

@Test
public void testGenerateParseOneByteAtATime() throws Exception {
    PingGenerator generator = new PingGenerator(new HeaderGenerator());
    final List<PingFrame> frames = new ArrayList<>();
    Parser parser = new Parser(byteBufferPool, new Parser.Listener.Adapter() {

        @Override
        public void onPing(PingFrame frame) {
            frames.add(frame);
        }
    }, 4096, 8192);
    byte[] payload = new byte[8];
    new Random().nextBytes(payload);
    // Iterate a few times to be sure generator and parser are properly reset.
    for (int i = 0; i < 2; ++i) {
        ByteBufferPool.Lease lease = new ByteBufferPool.Lease(byteBufferPool);
        generator.generatePing(lease, payload, true);
        frames.clear();
        for (ByteBuffer buffer : lease.getByteBuffers()) {
            while (buffer.hasRemaining()) {
                parser.parse(ByteBuffer.wrap(new byte[] { buffer.get() }));
            }
        }
        Assert.assertEquals(1, frames.size());
        PingFrame frame = frames.get(0);
        Assert.assertArrayEquals(payload, frame.getPayload());
        Assert.assertTrue(frame.isReply());
    }
}
Also used : MappedByteBufferPool(org.eclipse.jetty.io.MappedByteBufferPool) ByteBufferPool(org.eclipse.jetty.io.ByteBufferPool) ArrayList(java.util.ArrayList) PingGenerator(org.eclipse.jetty.http2.generator.PingGenerator) ByteBuffer(java.nio.ByteBuffer) Parser(org.eclipse.jetty.http2.parser.Parser) Random(java.util.Random) HeaderGenerator(org.eclipse.jetty.http2.generator.HeaderGenerator) Test(org.junit.Test)

Example 3 with PingGenerator

use of org.eclipse.jetty.http2.generator.PingGenerator in project jetty.project by eclipse.

the class PingGenerateParseTest method testGenerateParse.

@Test
public void testGenerateParse() throws Exception {
    PingGenerator generator = new PingGenerator(new HeaderGenerator());
    final List<PingFrame> frames = new ArrayList<>();
    Parser parser = new Parser(byteBufferPool, new Parser.Listener.Adapter() {

        @Override
        public void onPing(PingFrame frame) {
            frames.add(frame);
        }
    }, 4096, 8192);
    byte[] payload = new byte[8];
    new Random().nextBytes(payload);
    // Iterate a few times to be sure generator and parser are properly reset.
    for (int i = 0; i < 2; ++i) {
        ByteBufferPool.Lease lease = new ByteBufferPool.Lease(byteBufferPool);
        generator.generatePing(lease, payload, true);
        frames.clear();
        for (ByteBuffer buffer : lease.getByteBuffers()) {
            while (buffer.hasRemaining()) {
                parser.parse(buffer);
            }
        }
    }
    Assert.assertEquals(1, frames.size());
    PingFrame frame = frames.get(0);
    Assert.assertArrayEquals(payload, frame.getPayload());
    Assert.assertTrue(frame.isReply());
}
Also used : MappedByteBufferPool(org.eclipse.jetty.io.MappedByteBufferPool) ByteBufferPool(org.eclipse.jetty.io.ByteBufferPool) ArrayList(java.util.ArrayList) PingGenerator(org.eclipse.jetty.http2.generator.PingGenerator) ByteBuffer(java.nio.ByteBuffer) Parser(org.eclipse.jetty.http2.parser.Parser) Random(java.util.Random) HeaderGenerator(org.eclipse.jetty.http2.generator.HeaderGenerator) Test(org.junit.Test)

Aggregations

ByteBuffer (java.nio.ByteBuffer)3 ArrayList (java.util.ArrayList)3 HeaderGenerator (org.eclipse.jetty.http2.generator.HeaderGenerator)3 PingGenerator (org.eclipse.jetty.http2.generator.PingGenerator)3 Parser (org.eclipse.jetty.http2.parser.Parser)3 ByteBufferPool (org.eclipse.jetty.io.ByteBufferPool)3 MappedByteBufferPool (org.eclipse.jetty.io.MappedByteBufferPool)3 Test (org.junit.Test)3 Random (java.util.Random)2