Ejemplo n.º 1
0
        public void EnsureAllocatesSpan()
        {
            BufferWriter <PipeWriter> writer = new BufferWriter <PipeWriter>(Pipe.Writer);

            writer.Ensure(10);
            Assert.True(writer.Span.Length > 10);
            Assert.Equal(new byte[] { }, Read());
        }
Ejemplo n.º 2
0
        public void BufferWriterCountsBytesCommitted()
        {
            BufferWriter <PipeWriter> writer = new BufferWriter <PipeWriter>(Pipe.Writer);

            writer.Write(new byte[] { 1, 2, 3 });
            Assert.Equal(0, writer.BytesCommitted);

            writer.Commit();
            Assert.Equal(3, writer.BytesCommitted);

            writer.Ensure(10);
            writer.Advance(10);
            Assert.Equal(3, writer.BytesCommitted);

            writer.Commit();
            Assert.Equal(13, writer.BytesCommitted);

            Pipe.Writer.FlushAsync().GetAwaiter().GetResult();
            var readResult = Pipe.Reader.ReadAsync().GetAwaiter().GetResult();

            // Consuming the buffer does not change BytesCommitted
            Assert.Equal(13, readResult.Buffer.Length);
            Assert.Equal(13, writer.BytesCommitted);
        }