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:
authorStephen Toub <stoub@microsoft.com>2018-04-09 22:12:41 +0300
committerGitHub <noreply@github.com>2018-04-09 22:12:41 +0300
commita036d70307f7d9dabb7fcb9d9d2b3d3a23011469 (patch)
tree01624ed149ed8075de87968985947cb8d81c2d10 /src/System.Memory/tests/Memory/Span.cs
parentd3b70585218bb1e3e068c43bc2eaf1c34c616983 (diff)
Add {ReadOnly}Memory.Span tests when memory contains invalid values (#28896)
* Add {ReadOnly}Memory.Span tests when memory contains invalid values * Address PR feedback
Diffstat (limited to 'src/System.Memory/tests/Memory/Span.cs')
-rw-r--r--src/System.Memory/tests/Memory/Span.cs23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/System.Memory/tests/Memory/Span.cs b/src/System.Memory/tests/Memory/Span.cs
index 472310d786..55ed001b3d 100644
--- a/src/System.Memory/tests/Memory/Span.cs
+++ b/src/System.Memory/tests/Memory/Span.cs
@@ -106,5 +106,28 @@ namespace System.MemoryTests
Assert.True(spanObject.SequenceEqual(default));
}
+ [Fact]
+ public static void TornMemory_Array_SpanThrowsIfOutOfBounds()
+ {
+ Memory<int> memory;
+
+ memory = TestHelpers.DangerousCreateMemory<int>(new int[4], 0, 5);
+ Assert.Throws<ArgumentOutOfRangeException>(() => memory.Span.DontBox());
+
+ memory = TestHelpers.DangerousCreateMemory<int>(new int[4], 3, 2);
+ Assert.Throws<ArgumentOutOfRangeException>(() => memory.Span.DontBox());
+ }
+
+ [Fact]
+ public static void TornMemory_String_SpanThrowsIfOutOfBounds()
+ {
+ Memory<char> memory;
+
+ memory = TestHelpers.DangerousCreateMemory<char>("1234", 0, 5);
+ Assert.Throws<ArgumentOutOfRangeException>(() => memory.Span.DontBox());
+
+ memory = TestHelpers.DangerousCreateMemory<char>("1234", 3, 2);
+ Assert.Throws<ArgumentOutOfRangeException>(() => memory.Span.DontBox());
+ }
}
}