diff --git a/src/Adaptive.Aeron.Tests/CncFileDescriptorTest.cs b/src/Adaptive.Aeron.Tests/CncFileDescriptorTest.cs new file mode 100644 index 0000000..62b2c86 --- /dev/null +++ b/src/Adaptive.Aeron.Tests/CncFileDescriptorTest.cs @@ -0,0 +1,28 @@ +using NUnit.Framework; +using Adaptive.Agrona.Util; +using Adaptive.Agrona.Concurrent; +using Adaptive.Agrona; +using System.IO; + +namespace Adaptive.Aeron.Tests +{ + class CncFileDescriptorTest + { + [Test] + [Ignore("Media driver needs to be running")] + public void ShouldAllocateCapacityForCounterMetadataBuffer() + { + string aeronDir = Aeron.Context.GetAeronDirectoryName(); + + MappedByteBuffer cncByteBuffer = IoUtil.MapExistingFile( + Path.Combine(aeronDir, "cnc.dat"), MapMode.ReadOnly); + + UnsafeBuffer metadataBuffer = CncFileDescriptor.CreateMetaDataBuffer(cncByteBuffer); + + UnsafeBuffer countersValueBuffer = CncFileDescriptor.CreateCountersValuesBuffer(cncByteBuffer, metadataBuffer); + UnsafeBuffer countersMetadataBuffer = CncFileDescriptor.CreateCountersMetaDataBuffer(cncByteBuffer, metadataBuffer); + + Assert.AreEqual(Tests.countersMetadataBufferLength(countersValueBuffer.Capacity), countersMetadataBuffer.Capacity); + } + } +} \ No newline at end of file diff --git a/src/Adaptive.Aeron/CncFileDescriptor.cs b/src/Adaptive.Aeron/CncFileDescriptor.cs index 481f428..78a0c48 100644 --- a/src/Adaptive.Aeron/CncFileDescriptor.cs +++ b/src/Adaptive.Aeron/CncFileDescriptor.cs @@ -313,7 +313,7 @@ public static UnsafeBuffer CreateCountersMetaDataBuffer(MappedByteBuffer buffer, metaDataBuffer.GetInt(TO_CLIENTS_BUFFER_LENGTH_FIELD_OFFSET); return new UnsafeBuffer(buffer.Pointer, offset, - metaDataBuffer.GetInt(TO_CLIENTS_BUFFER_LENGTH_FIELD_OFFSET)); + metaDataBuffer.GetInt(COUNTERS_METADATA_BUFFER_LENGTH_FIELD_OFFSET)); } ///