Example #1
0
        public void TestNewByteBuf_5()
        {
            NativePooledByteBuffer sb5 = (NativePooledByteBuffer)_factory.NewByteBuffer(5);

            Assert.AreEqual(8, sb5._bufRef.Get().Size);
            Assert.AreEqual(1, sb5._bufRef.GetUnderlyingReferenceTestOnly().GetRefCountTestOnly());
            _stats.Refresh();
            var testStat = new Dictionary <int, Tuple <int, int> >()
            {
                { 32, new Tuple <int, int>(0, 0) },
                { 16, new Tuple <int, int>(0, 0) },
                { 8, new Tuple <int, int>(1, 0) },
                { 4, new Tuple <int, int>(0, 0) }
            };

            Assert.IsTrue(testStat.All(e => _stats.BucketStats.Contains(e)));
            sb5.Dispose();

            _stats.Refresh();
            testStat = new Dictionary <int, Tuple <int, int> >()
            {
                { 32, new Tuple <int, int>(0, 0) },
                { 16, new Tuple <int, int>(0, 0) },
                { 8, new Tuple <int, int>(0, 1) },
                { 4, new Tuple <int, int>(0, 0) }
            };

            Assert.IsTrue(testStat.All(e => _stats.BucketStats.Contains(e)));
        }
        public void Initialize()
        {
            _chunk = new FakeNativeMemoryChunk(BYTES.Length);
            _chunk.Write(0, BYTES, 0, BYTES.Length);
            _pool = new FakeNativeMemoryChunkPool();
            var poolRef = CloseableReference <NativeMemoryChunk> .of(_chunk, _pool);

            _pooledByteBuffer = new NativePooledByteBuffer(
                poolRef,
                BUFFER_LENGTH);

            poolRef.Dispose();
        }
Example #3
0
        public void TestNewByteBuf_2()
        {
            NativePooledByteBuffer sb2 = (NativePooledByteBuffer)_factory.NewByteBuffer(new MemoryStream(_data), 8);

            Assert.AreEqual(16, sb2._bufRef.Get().Size);
            AssertArrayEquals(_data, GetBytes(sb2), _data.Length);
            _stats.Refresh();
            var testStat = new Dictionary <int, Tuple <int, int> >()
            {
                { 32, new Tuple <int, int>(0, 0) },
                { 16, new Tuple <int, int>(1, 0) },
                { 8, new Tuple <int, int>(0, 1) },
                { 4, new Tuple <int, int>(0, 0) }
            };

            Assert.IsTrue(testStat.All(e => _stats.BucketStats.Contains(e)));
        }
Example #4
0
        public void TestBasic_2()
        {
            NativePooledByteBufferOutputStream os2 = new NativePooledByteBufferOutputStream(_pool, 8);
            NativePooledByteBuffer             sb2 = DoWrite(os2, _data);

            Assert.AreEqual(16, sb2._bufRef.Get().Size);
            AssertArrayEquals(_data, GetBytes(sb2), _data.Length);
            _stats.Refresh();
            var testStat = new Dictionary <int, Tuple <int, int> >()
            {
                { 32, new Tuple <int, int>(0, 0) },
                { 16, new Tuple <int, int>(1, 0) },
                { 8, new Tuple <int, int>(0, 1) },
                { 4, new Tuple <int, int>(0, 0) }
            };

            Assert.IsTrue(testStat.All(e => _stats.BucketStats.Contains(e)));
        }
Example #5
0
        public void TestWriteAfterToByteBuf()
        {
            NativePooledByteBufferOutputStream os1 = new NativePooledByteBufferOutputStream(_pool);

            byte[] _data1 = new byte[9];
            byte[] _data2 = new byte[3];
            Array.Copy(_data, _data1, _data1.Length);
            Array.Copy(_data, _data2, _data2.Length);
            NativePooledByteBuffer buf1 = DoWrite(os1, _data1);
            NativePooledByteBuffer buf2 = DoWrite(os1, _data2);

            Assert.AreEqual(12, buf2.Size);

            CloseableReference <NativeMemoryChunk> chunk = buf1._bufRef;

            Assert.AreEqual(3, chunk.GetUnderlyingReferenceTestOnly().GetRefCountTestOnly());
            os1.Dispose();
            buf1.Dispose();
            buf2.Dispose();
            Assert.AreEqual(0, chunk.GetUnderlyingReferenceTestOnly().GetRefCountTestOnly());
        }
Example #6
0
 private byte[] GetBytes(NativePooledByteBuffer bb)
 {
     byte[] bytes = new byte[bb.Size];
     bb._bufRef.Get().Read(0, bytes, 0, bytes.Length);
     return(bytes);
 }