public void FromMemoryBlockAndContiguousTest() { CMBlockBufferError err1; CMBlockBufferError err2; using (var bb = CMBlockBuffer.FromMemoryBlock(IntPtr.Zero, 16, null, 0, 5, CMBlockBufferFlags.AssureMemoryNow, out err1)) using (var bc = CMBlockBuffer.CreateContiguous(bb, null, 0, 5, CMBlockBufferFlags.AssureMemoryNow, out err2)) { Assert.That(err1, Is.EqualTo(CMBlockBufferError.None), "FromMemoryBlock error"); Assert.That(err2, Is.EqualTo(CMBlockBufferError.None), "CreateContiguous error"); Assert.That(bb.DataLength, Is.EqualTo((nuint)5), "FromMemoryBlock DataLength"); Assert.That(bc.DataLength, Is.EqualTo((nuint)5), "CreateContiguous DataLength"); } using (var allocator = new CMCustomBlockAllocator()) using (var bb = CMBlockBuffer.FromMemoryBlock(IntPtr.Zero, 16, allocator, 0, 5, CMBlockBufferFlags.AssureMemoryNow, out err1)) using (var bc = CMBlockBuffer.CreateContiguous(bb, allocator, 0, 5, CMBlockBufferFlags.AssureMemoryNow, out err2)) { Assert.That(err1, Is.EqualTo(CMBlockBufferError.None), "FromMemoryBlock error"); Assert.That(err2, Is.EqualTo(CMBlockBufferError.None), "CreateContiguous error"); Assert.That(bb.DataLength, Is.EqualTo((nuint)5), "FromMemoryBlock DataLength"); Assert.That(bc.DataLength, Is.EqualTo((nuint)5), "CreateContiguous DataLength"); } using (var allocator = new CustomAllocator(this)) using (var bb = CMBlockBuffer.FromMemoryBlock(IntPtr.Zero, 16, allocator, 0, 5, CMBlockBufferFlags.AssureMemoryNow, out err1)) { Assert.That(err1, Is.EqualTo(CMBlockBufferError.None), "FromMemoryBlock error"); Assert.That(bb.DataLength, Is.EqualTo((nuint)5), "FromMemoryBlock DataLength"); Assert.IsTrue(allocateCalled, "FromMemoryBlock AllocateCalled"); } Assert.IsTrue(freeCalled, "FromMemoryBlock FreeCalled"); }
public void AppendMemoryBlockTest() { CMBlockBufferError err1; CMBlockBufferError err2; using (var bb = CMBlockBuffer.FromMemoryBlock(IntPtr.Zero, 16, null, 0, 5, CMBlockBufferFlags.AssureMemoryNow, out err1)) { Assert.That(err1, Is.EqualTo(CMBlockBufferError.None), "FromMemoryBlock error"); Assert.That(bb.DataLength, Is.EqualTo((nuint)5), "FromMemoryBlock DataLength"); var ptr = Marshal.AllocHGlobal(16); err2 = bb.AppendMemoryBlock(ptr, 16, null, 0, 5, CMBlockBufferFlags.AssureMemoryNow); Assert.That(err2, Is.EqualTo(CMBlockBufferError.None), "AppendMemoryBlock error"); Assert.That(bb.DataLength, Is.EqualTo((nuint)10), "AppendMemoryBlock DataLength"); } using (var bb = CMBlockBuffer.FromMemoryBlock(IntPtr.Zero, 16, new CMCustomBlockAllocator(), 0, 5, CMBlockBufferFlags.AssureMemoryNow, out err1)) { Assert.That(err1, Is.EqualTo(CMBlockBufferError.None), "FromMemoryBlock error"); Assert.That(bb.DataLength, Is.EqualTo((nuint)5), "FromMemoryBlock DataLength"); var ptr = Marshal.AllocHGlobal(16); err2 = bb.AppendMemoryBlock(ptr, 16, new CMCustomBlockAllocator(), 0, 5, CMBlockBufferFlags.AssureMemoryNow); Assert.That(err2, Is.EqualTo(CMBlockBufferError.None), "AppendMemoryBlock error"); Assert.That(bb.DataLength, Is.EqualTo((nuint)10), "AppendMemoryBlock DataLength"); } allocateCalled = false; freeCalled = false; using (var allocator = new CustomAllocator(this)) using (var bb = CMBlockBuffer.FromMemoryBlock(IntPtr.Zero, 16, new CMCustomBlockAllocator(), 0, 5, CMBlockBufferFlags.AssureMemoryNow, out err1)) { Assert.That(err1, Is.EqualTo(CMBlockBufferError.None), "FromMemoryBlock error"); Assert.That(bb.DataLength, Is.EqualTo((nuint)5), "FromMemoryBlock DataLength"); var ptr = Marshal.AllocHGlobal(16); err2 = bb.AppendMemoryBlock(ptr, 16, allocator, 0, 5, CMBlockBufferFlags.AssureMemoryNow); Assert.That(err2, Is.EqualTo(CMBlockBufferError.None), "AppendMemoryBlock error"); Assert.That(bb.DataLength, Is.EqualTo((nuint)10), "FromMemoryBlock DataLength"); } Assert.IsTrue(freeCalled, "FromMemoryBlock FreeCalled"); }