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

github.com/mono/debugger-libs.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeffrey Stedfast <jestedfa@microsoft.com>2020-05-05 00:12:57 +0300
committerGitHub <noreply@github.com>2020-05-05 00:12:57 +0300
commitd6375592c233bfdd4190fa1a428972b64f94073d (patch)
tree041deeac86b2e191b9e84d5a0dcda48671a37df6
parentfc3d481dade35d9bb2e8bd0970305b73af060002 (diff)
parentef67848aa5c5aadcc2d4b6d51602dd7c2e60bbf1 (diff)
Merge pull request #319 from mono/d16-6-rawarray-unit-testsd16-6
[d16-6] Add unit tests for raw array values
-rw-r--r--UnitTests/Mono.Debugging.Tests/Shared/EvaluationTests.cs63
-rw-r--r--UnitTests/MonoDevelop.Debugger.Tests.TestApp/TestEvaluation.cs7
2 files changed, 63 insertions, 7 deletions
diff --git a/UnitTests/Mono.Debugging.Tests/Shared/EvaluationTests.cs b/UnitTests/Mono.Debugging.Tests/Shared/EvaluationTests.cs
index c01491c..421805c 100644
--- a/UnitTests/Mono.Debugging.Tests/Shared/EvaluationTests.cs
+++ b/UnitTests/Mono.Debugging.Tests/Shared/EvaluationTests.cs
@@ -2873,13 +2873,11 @@ namespace Mono.Debugging.Tests
}
Assert.AreEqual ("byte[]", val.TypeName);
Assert.AreEqual ("{byte[3]}", val.Value);
- if (!IsVsDebugger) {
- // Note: this is not currently supported in the NetCoreDebugger
- var bytes = ((RawValueArray)val.GetRawValue ()).ToArray ();
- Assert.AreEqual (239, bytes.GetValue (0));
- Assert.AreEqual (187, bytes.GetValue (1));
- Assert.AreEqual (191, bytes.GetValue (2));
- }
+
+ var bytes = ((RawValueArray)val.GetRawValue ()).ToArray ();
+ Assert.AreEqual (239, bytes.GetValue (0));
+ Assert.AreEqual (187, bytes.GetValue (1));
+ Assert.AreEqual (191, bytes.GetValue (2));
val = Eval ("b.TestMethod ()");
if (!AllowTargetInvokes) {
@@ -3224,5 +3222,56 @@ namespace Mono.Debugging.Tests
Assert.AreEqual ("int?", val.TypeName);
Assert.AreEqual ("(null)", val.Value);
}
+
+ [Test]
+ public void RawByteArrayToArray ()
+ {
+ var val = Eval ("rawByteArray");
+ Assert.AreEqual ("byte[]", val.TypeName, "rawByteArray");
+ Assert.AreEqual ("{byte[256]}", val.Value);
+
+ var rawArray = (RawValueArray)val.GetRawValue ();
+ var bytes = rawArray.ToArray ();
+ for (int i = 0; i < 256; i++)
+ Assert.AreEqual ((byte) i, bytes.GetValue (i));
+ }
+
+ [Test]
+ public void RawByteArrayChunking ()
+ {
+ var val = Eval ("rawByteArray");
+ Assert.AreEqual ("byte[]", val.TypeName, "rawByteArray");
+ Assert.AreEqual ("{byte[256]}", val.Value);
+
+ var rawArray = (RawValueArray)val.GetRawValue ();
+ int index = 0;
+
+ while (index < 256) {
+ var bytes = rawArray.GetValues (index, 32);
+ Assert.AreEqual (32, bytes.Length);
+ for (int i = 0; i < bytes.Length; i++)
+ Assert.AreEqual ((byte) (index + i), bytes.GetValue (i));
+ index += bytes.Length;
+ }
+ }
+
+ [Test]
+ public void RawByteArrayRandomAccess ()
+ {
+ var val = Eval ("rawByteArray");
+ Assert.AreEqual ("byte[]", val.TypeName, "rawByteArray");
+ Assert.AreEqual ("{byte[256]}", val.Value);
+
+ var rawArray = (RawValueArray)val.GetRawValue ();
+ var indexes = new int[] { 57, 179, 97, 229 };
+
+ foreach (var startIndex in indexes) {
+ var expected = Math.Min(32, 256 - startIndex);
+ var bytes = rawArray.GetValues (startIndex, expected);
+ Assert.AreEqual (expected, bytes.Length, "expected {0} bytes for chunk starting at {1}", expected, startIndex);
+ for (int i = 0; i < bytes.Length; i++)
+ Assert.AreEqual ((byte) (startIndex + i), bytes.GetValue (i), "incorrect byte at index {0}", startIndex + i);
+ }
+ }
}
}
diff --git a/UnitTests/MonoDevelop.Debugger.Tests.TestApp/TestEvaluation.cs b/UnitTests/MonoDevelop.Debugger.Tests.TestApp/TestEvaluation.cs
index 2abcd16..089c1b8 100644
--- a/UnitTests/MonoDevelop.Debugger.Tests.TestApp/TestEvaluation.cs
+++ b/UnitTests/MonoDevelop.Debugger.Tests.TestApp/TestEvaluation.cs
@@ -340,6 +340,13 @@ namespace MonoDevelop.Debugger.Tests.TestApp
BaseClass bar = new OverrideClass();
INamedTypeSymbol namedTypeSymbol = new NamedTypeSymbol ();
+ byte[] rawByteArray = new byte[256];
+ char[] rawCharArray = new char[256];
+ for (int i = 0; i < 256; i++) {
+ rawByteArray[i] = (byte) i;
+ rawCharArray[i] = (char) i;
+ }
+
Console.WriteLine (n); /*break*/
}