Пример #1
0
        public void NothingIsAllocatedIfDataIsEmpty()
        {
            var memory = new UnmanagedMemoryChunk {
                Data = new byte[0]
            };

            Assert.AreEqual(IntPtr.Zero, memory.Memory);
        }
Пример #2
0
        public void DataIsAllocatedInUnmanagedMemory()
        {
            var data = new byte[100];

            new Random().NextBytes(data);

            using (var memory = new UnmanagedMemoryChunk {
                Data = data
            })
            {
                Assert.AreEqual(100, memory.Size);
            }
        }
Пример #3
0
        public void SecondDataAssignmentFreesPreviousMemory()
        {
            var firstData  = new byte[100];
            var secondData = new byte[200];

            new Random().NextBytes(firstData);
            new Random().NextBytes(secondData);

            using (var memory = new UnmanagedMemoryChunk())
            {
                memory.Data = firstData;
                memory.Data = secondData;

                Assert.AreEqual(200, memory.Size);
            }
        }
Пример #4
0
        public void DataIsDeallocatedAfterObjectIsDisposed()
        {
            var data = new byte[100];

            new Random().NextBytes(data);

            UnmanagedMemoryChunk memory;

            using (memory = new UnmanagedMemoryChunk {
                Data = data
            })
            {
            }

            Assert.AreEqual(IntPtr.Zero, memory.Memory);
        }
Пример #5
0
        public void NoMemoryIsAllocatedByDefault()
        {
            var memory = new UnmanagedMemoryChunk();

            Assert.AreEqual(IntPtr.Zero, memory.Memory);
        }