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

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLluis Sanchez Gual <lluis@xamarin.com>2015-07-22 11:51:23 +0300
committerLluis Sanchez Gual <lluis@xamarin.com>2015-07-22 11:51:23 +0300
commit7e3b6535ab1d8e3350a0d3e30c7b434773fd4b50 (patch)
tree3c1b11f271aff65a970aaddde885867b558070b5 /main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests
parent9c6aa547c43a7fcb59c62bccbf7f3d69e568af33 (diff)
parent7bcb8ecc7194fef55cd4f7a8d045130ec782e139 (diff)
Merge remote-tracking branch 'origin/master' into roslyn
Diffstat (limited to 'main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests')
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/DebugTests.cs10
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/EvaluationTests.cs129
2 files changed, 135 insertions, 4 deletions
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/DebugTests.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/DebugTests.cs
index 033e45bb70..6b2e752541 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/DebugTests.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/DebugTests.cs
@@ -224,6 +224,9 @@ namespace MonoDevelop.Debugger.Tests
default:
throw new Exception ("Timeout while waiting for initial breakpoint");
}
+ if (Session is SoftDebuggerSession) {
+ Console.WriteLine ("SDB protocol version:" + ((SoftDebuggerSession)Session).ProtocolVersion);
+ }
}
void GetLineAndColumn (string breakpointMarker, int offset, string statement, out int line, out int col)
@@ -401,6 +404,13 @@ namespace MonoDevelop.Debugger.Tests
static class EvalHelper
{
+ public static bool AtLeast (this Version ver, int major, int minor) {
+ if ((ver.Major > major) || ((ver.Major == major && ver.Minor >= minor)))
+ return true;
+ else
+ return false;
+ }
+
public static ObjectValue Sync (this ObjectValue val)
{
if (!val.IsEvaluating)
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/EvaluationTests.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/EvaluationTests.cs
index 9371dfa6f2..4f06ceae1d 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/EvaluationTests.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/EvaluationTests.cs
@@ -177,6 +177,11 @@ namespace MonoDevelop.Debugger.Tests
public virtual void HiddenMembers ()
{
IgnoreCorDebugger ("TODO");
+ if (Session is SoftDebuggerSession) {
+ if (!((SoftDebuggerSession)Session).ProtocolVersion.AtLeast (2, 40)) {
+ Assert.Ignore ("Need newer Mono with SDB protocol 2.40+");
+ }
+ }
ObjectValue val;
val = Eval ("HiddenField");
Assert.AreEqual ("5", val.Value);
@@ -203,6 +208,122 @@ namespace MonoDevelop.Debugger.Tests
}
Assert.AreEqual ("5", val.Value);
Assert.AreEqual ("int", val.TypeName);
+
+ val = Eval ("OverridenPropertyInt");
+ if (!AllowTargetInvokes) {
+ var options = Session.Options.EvaluationOptions.Clone ();
+ options.AllowTargetInvoke = true;
+
+ val.Refresh (options);
+ val = val.Sync ();
+ }
+ Assert.AreEqual ("6", val.Value);
+ Assert.AreEqual ("int", val.TypeName);
+
+ val = Eval ("OverridenMethodInt()");
+ if (!AllowTargetInvokes) {
+ var options = Session.Options.EvaluationOptions.Clone ();
+ options.AllowTargetInvoke = true;
+
+ val.Refresh (options);
+ val = val.Sync ();
+ }
+ Assert.AreEqual ("6", val.Value);
+ Assert.AreEqual ("int", val.TypeName);
+
+ val = Eval ("OverridenPropertyString");
+ if (!AllowTargetInvokes) {
+ var options = Session.Options.EvaluationOptions.Clone ();
+ options.AllowTargetInvoke = true;
+
+ val.Refresh (options);
+ val = val.Sync ();
+ }
+ Assert.AreEqual ("\"6\"", val.Value);
+ Assert.AreEqual ("string", val.TypeName);
+
+ val = Eval ("OverridenMethodString()");
+ if (!AllowTargetInvokes) {
+ var options = Session.Options.EvaluationOptions.Clone ();
+ options.AllowTargetInvoke = true;
+
+ val.Refresh (options);
+ val = val.Sync ();
+ }
+ Assert.AreEqual ("\"6\"", val.Value);
+ Assert.AreEqual ("string", val.TypeName);
+
+
+
+ val = Eval ("testEvaluationChild.HiddenField");
+ Assert.AreEqual ("6", val.Value);
+ Assert.AreEqual ("int", val.TypeName);
+
+ val = Eval ("testEvaluationChild.HiddenProperty");
+ if (!AllowTargetInvokes) {
+ var options = Session.Options.EvaluationOptions.Clone ();
+ options.AllowTargetInvoke = true;
+
+ val.Refresh (options);
+ val = val.Sync ();
+ }
+ Assert.AreEqual ("6", val.Value);
+ Assert.AreEqual ("int", val.TypeName);
+
+ val = Eval ("testEvaluationChild.HiddenMethod()");
+ if (!AllowTargetInvokes) {
+ var options = Session.Options.EvaluationOptions.Clone ();
+ options.AllowTargetInvoke = true;
+
+ val.Refresh (options);
+ val = val.Sync ();
+ }
+ Assert.AreEqual ("6", val.Value);
+ Assert.AreEqual ("int", val.TypeName);
+
+ val = Eval ("testEvaluationChild.OverridenPropertyInt");
+ if (!AllowTargetInvokes) {
+ var options = Session.Options.EvaluationOptions.Clone ();
+ options.AllowTargetInvoke = true;
+
+ val.Refresh (options);
+ val = val.Sync ();
+ }
+ Assert.AreEqual ("6", val.Value);
+ Assert.AreEqual ("int", val.TypeName);
+
+ val = Eval ("testEvaluationChild.OverridenMethodInt()");
+ if (!AllowTargetInvokes) {
+ var options = Session.Options.EvaluationOptions.Clone ();
+ options.AllowTargetInvoke = true;
+
+ val.Refresh (options);
+ val = val.Sync ();
+ }
+ Assert.AreEqual ("6", val.Value);
+ Assert.AreEqual ("int", val.TypeName);
+
+ val = Eval ("testEvaluationChild.OverridenPropertyString");
+ if (!AllowTargetInvokes) {
+ var options = Session.Options.EvaluationOptions.Clone ();
+ options.AllowTargetInvoke = true;
+
+ val.Refresh (options);
+ val = val.Sync ();
+ }
+ Assert.AreEqual ("\"6\"", val.Value);
+ Assert.AreEqual ("string", val.TypeName);
+
+ val = Eval ("testEvaluationChild.OverridenMethodString()");
+ if (!AllowTargetInvokes) {
+ var options = Session.Options.EvaluationOptions.Clone ();
+ options.AllowTargetInvoke = true;
+
+ val.Refresh (options);
+ val = val.Sync ();
+ }
+ Assert.AreEqual ("\"6\"", val.Value);
+ Assert.AreEqual ("string", val.TypeName);
}
[Test]
@@ -610,7 +731,7 @@ namespace MonoDevelop.Debugger.Tests
Assert.AreEqual ("bool", val.TypeName);
val = Eval ("alist.Count");
- if (!AllowTargetInvokes && soft == null) {
+ if (!AllowTargetInvokes) {
// Note: this is a simple property which gets evaluated client-side by the SDB backend
var options = Session.Options.EvaluationOptions.Clone ();
options.AllowTargetInvoke = true;
@@ -1659,7 +1780,7 @@ namespace MonoDevelop.Debugger.Tests
Assert.Ignore ("A newer version of the Mono runtime is required.");
val = Eval ("a.Prop");
- if (!AllowTargetInvokes && soft == null) {
+ if (!AllowTargetInvokes) {
var options = Session.Options.EvaluationOptions.Clone ();
options.AllowTargetInvoke = true;
@@ -1683,7 +1804,7 @@ namespace MonoDevelop.Debugger.Tests
Assert.AreEqual ("int", val.TypeName);
val = Eval ("a.PropNoVirt2");
- if (!AllowTargetInvokes && soft == null) {
+ if (!AllowTargetInvokes) {
var options = Session.Options.EvaluationOptions.Clone ();
options.AllowTargetInvoke = true;
@@ -1735,7 +1856,7 @@ namespace MonoDevelop.Debugger.Tests
Assert.AreEqual ("int", val.TypeName);
val = Eval ("b.Prop");
- if (!AllowTargetInvokes && soft == null) {
+ if (!AllowTargetInvokes) {
var options = Session.Options.EvaluationOptions.Clone ();
options.AllowTargetInvoke = true;