Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/corefx.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/System.Memory/tests/Memory')
-rw-r--r--src/System.Memory/tests/Memory/MemoryManager.cs27
-rw-r--r--src/System.Memory/tests/Memory/Span.cs30
2 files changed, 57 insertions, 0 deletions
diff --git a/src/System.Memory/tests/Memory/MemoryManager.cs b/src/System.Memory/tests/Memory/MemoryManager.cs
index 4f6f2461cf..5a6c675c72 100644
--- a/src/System.Memory/tests/Memory/MemoryManager.cs
+++ b/src/System.Memory/tests/Memory/MemoryManager.cs
@@ -28,6 +28,33 @@ namespace System.MemoryTests
}
[Fact]
+ public static void MemoryManagerCtorDefault()
+ {
+ MemoryManager<int> managerInt = default;
+ Assert.Throws<ArgumentNullException>(() => new Memory<int>(managerInt, 0, 0));
+
+ managerInt = null;
+ Assert.Throws<ArgumentNullException>(() => new Memory<int>(managerInt, 0, 0));
+
+ MemoryManager<object> managerObject = default;
+ Assert.Throws<ArgumentNullException>(() => new Memory<object>(managerObject, 0, 0));
+ }
+
+ [Fact]
+ public static void MemoryManagerCtorInvalid()
+ {
+ int[] a = { 91, 92, -93, 94 };
+ MemoryManager<int> manager = new CustomMemoryForTest<int>(a);
+ Assert.Throws<ArgumentOutOfRangeException>(() => new Memory<int>(manager, 0, -1));
+ Assert.Throws<ArgumentOutOfRangeException>(() => new Memory<int>(manager, -1, 0));
+ Assert.Throws<ArgumentOutOfRangeException>(() => new Memory<int>(manager, -1, -1));
+ Assert.Throws<ArgumentOutOfRangeException>(() => new Memory<int>(manager, -1, -1));
+ Assert.Throws<ArgumentOutOfRangeException>(() => new Memory<int>(manager, 0, a.Length + 1));
+ Assert.Throws<ArgumentOutOfRangeException>(() => new Memory<int>(manager, a.Length + 1, 0));
+ Assert.Throws<ArgumentOutOfRangeException>(() => new Memory<int>(manager, 1, a.Length));
+ }
+
+ [Fact]
public static void ReadOnlyMemoryFromMemoryFromMemoryManagerInt()
{
int[] a = { 91, 92, -93, 94 };
diff --git a/src/System.Memory/tests/Memory/Span.cs b/src/System.Memory/tests/Memory/Span.cs
index 55ed001b3d..55956dd6ab 100644
--- a/src/System.Memory/tests/Memory/Span.cs
+++ b/src/System.Memory/tests/Memory/Span.cs
@@ -3,6 +3,7 @@
// See the LICENSE file in the project root for more information.
using System.Buffers;
+using System.Runtime.InteropServices;
using Xunit;
namespace System.MemoryTests
@@ -42,6 +43,22 @@ namespace System.MemoryTests
}
[Fact]
+ public static void SpanFromCtorArrayChar()
+ {
+ char[] a = { '1', '2', '3', '4', '-' };
+ Memory<char> memory;
+
+ memory = new Memory<char>(a);
+ memory.Span.Validate('1', '2', '3', '4', '-');
+
+ memory = new Memory<char>(a, 0, a.Length);
+ memory.Span.Validate('1', '2', '3', '4', '-');
+
+ MemoryManager<char> manager = new CustomMemoryForTest<char>(a);
+ manager.Memory.Span.Validate('1', '2', '3', '4', '-');
+ }
+
+ [Fact]
public static void SpanFromCtorArrayObject()
{
object o1 = new object();
@@ -60,6 +77,19 @@ namespace System.MemoryTests
}
[Fact]
+ public static void SpanFromStringAsMemory()
+ {
+ string a = "1234-";
+ ReadOnlyMemory<char> memory;
+
+ memory = a.AsMemory();
+ MemoryMarshal.AsMemory(memory).Span.Validate('1', '2', '3', '4', '-');
+
+ memory = a.AsMemory(0, a.Length);
+ MemoryMarshal.AsMemory(memory).Span.Validate('1', '2', '3', '4', '-');
+ }
+
+ [Fact]
public static void SpanFromCtorArrayZeroLength()
{
int[] empty = Array.Empty<int>();