Skip to content

Commit e4baaea

Browse files
committed
Added unit tests
1 parent d60e67c commit e4baaea

File tree

2 files changed

+45
-3
lines changed

2 files changed

+45
-3
lines changed

UnitTests/UnitTests.HighPerformance.Shared/Buffers/Test_MemoryOwner{T}.cs

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
// See the LICENSE file in the project root for more information.
44

55
using System;
6-
using System.Buffers;
76
using System.Diagnostics.CodeAnalysis;
87
using System.Linq;
98
using Microsoft.Toolkit.HighPerformance.Buffers;
@@ -105,7 +104,7 @@ public void Test_MemoryOwnerOfT_MultipleDispose()
105104
// by accident doesn't cause issues, and just does nothing.
106105
}
107106

108-
[TestCategory("HashCodeOfT")]
107+
[TestCategory("SpanOwnerOfT")]
109108
[TestMethod]
110109
public void Test_MemoryOwnerOfT_PooledBuffersAndClear()
111110
{
@@ -124,5 +123,34 @@ public void Test_MemoryOwnerOfT_PooledBuffersAndClear()
124123
Assert.IsTrue(buffer.Span.ToArray().All(i => i == 0));
125124
}
126125
}
126+
127+
[TestCategory("MemoryOwnerOfT")]
128+
[TestMethod]
129+
public void Test_MemoryOwnerOfT_AllocateAndGetArray()
130+
{
131+
var buffer = MemoryOwner<int>.Allocate(127);
132+
133+
var segment = buffer.DangerousGetArray();
134+
135+
Assert.IsNotNull(segment.Array);
136+
Assert.IsTrue(segment.Array.Length >= buffer.Length);
137+
Assert.AreEqual(segment.Offset, 0);
138+
Assert.AreEqual(segment.Count, buffer.Length);
139+
140+
var second = buffer.Slice(10, 80);
141+
142+
Assert.ThrowsException<ObjectDisposedException>(() => buffer.DangerousGetArray());
143+
144+
segment = second.DangerousGetArray();
145+
146+
Assert.IsNotNull(segment.Array);
147+
Assert.IsTrue(segment.Array.Length >= second.Length);
148+
Assert.AreEqual(segment.Offset, 10);
149+
Assert.AreEqual(segment.Count, second.Length);
150+
151+
second.Dispose();
152+
153+
Assert.ThrowsException<ObjectDisposedException>(() => second.DangerousGetArray());
154+
}
127155
}
128156
}

UnitTests/UnitTests.HighPerformance.Shared/Buffers/Test_SpanOwner{T}.cs

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public void Test_SpanOwnerOfT_InvalidRequestedSize()
6060
Assert.Fail("You shouldn't be here");
6161
}
6262

63-
[TestCategory("HashCodeOfT")]
63+
[TestCategory("SpanOwnerOfT")]
6464
[TestMethod]
6565
public void Test_SpanOwnerOfT_PooledBuffersAndClear()
6666
{
@@ -79,5 +79,19 @@ public void Test_SpanOwnerOfT_PooledBuffersAndClear()
7979
Assert.IsTrue(buffer.Span.ToArray().All(i => i == 0));
8080
}
8181
}
82+
83+
[TestCategory("SpanOwnerOfT")]
84+
[TestMethod]
85+
public void Test_SpanOwnerOfT_AllocateAndGetArray()
86+
{
87+
using var buffer = SpanOwner<int>.Allocate(127);
88+
89+
var segment = buffer.DangerousGetArray();
90+
91+
Assert.IsNotNull(segment.Array);
92+
Assert.IsTrue(segment.Array.Length >= buffer.Length);
93+
Assert.AreEqual(segment.Offset, 0);
94+
Assert.AreEqual(segment.Count, buffer.Length);
95+
}
8296
}
8397
}

0 commit comments

Comments
 (0)