Browse Source

Added debugger test: ObjectValue

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@880 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
David Srbecký 20 years ago
parent
commit
2db2020cbd
  1. 1
      src/AddIns/Misc/Debugger/Debugger.Tests/Project/Debugger.Tests.csproj
  2. 43
      src/AddIns/Misc/Debugger/Debugger.Tests/Project/Src/DebuggerTests.cs
  3. 1
      src/AddIns/Misc/Debugger/Debugger.Tests/Project/Src/TestProgram.cs
  4. 36
      src/AddIns/Misc/Debugger/Debugger.Tests/Project/Src/TestPrograms/ObjectValue.cs

1
src/AddIns/Misc/Debugger/Debugger.Tests/Project/Debugger.Tests.csproj

@ -49,6 +49,7 @@ @@ -49,6 +49,7 @@
<Compile Include="Src\TestPrograms\FunctionLocalVariables.cs" />
<Compile Include="Src\TestPrograms\FunctionLifetime.cs" />
<Compile Include="Src\TestPrograms\FunctionVariablesLifetime.cs" />
<Compile Include="Src\TestPrograms\ObjectValue.cs" />
</ItemGroup>
<ItemGroup>
<Folder Include="Src" />

43
src/AddIns/Misc/Debugger/Debugger.Tests/Project/Src/DebuggerTests.cs

@ -350,7 +350,7 @@ namespace Debugger.Tests @@ -350,7 +350,7 @@ namespace Debugger.Tests
Variable argument = null;
Variable local = null;
Variable @class = null;
StartProgram("FunctionVariablesLifetime");
WaitForPause(PausedReason.Break, null);
function = debugger.CurrentFunction;
@ -394,5 +394,46 @@ namespace Debugger.Tests @@ -394,5 +394,46 @@ namespace Debugger.Tests
debugger.Continue();
debugger.WaitForPrecessExit();
}
[Test]
public void ObjectValue()
{
Variable local = null;
Variable baseClass;
List<Variable> subVars = new List<Variable>();
StartProgram("ObjectValue");
WaitForPause(PausedReason.Break, null);
foreach(Variable var in debugger.CurrentFunction.LocalVariables) {
local = var;
}
Assert.AreEqual("val", local.Name);
Assert.AreEqual(true, local.MayHaveSubVariables);
Assert.AreEqual(typeof(ObjectValue), local.Value.GetType());
Assert.AreEqual("{Debugger.Tests.TestPrograms.ObjectValue}", local.Value.AsString);
Assert.AreEqual(true, ((ObjectValue)local.Value).HasBaseClass);
baseClass = ((ObjectValue)local.Value).BaseClassVariable;
Assert.AreEqual(typeof(ObjectValue), baseClass.Value.GetType());
Assert.AreEqual(false, baseClass.Value.IsExpired);
Assert.AreEqual("{Debugger.Tests.TestPrograms.BaseClass}", baseClass.Value.AsString);
foreach(Variable var in local.SubVariables) {
subVars.Add(var);
}
Assert.AreEqual("privateField", subVars[1].Name);
Assert.AreEqual("publicFiled", subVars[2].Name);
Assert.AreEqual("PublicProperty", subVars[3].Name);
Assert.AreEqual(typeof(Variable), subVars[1].GetType());
Assert.AreEqual(typeof(Variable), subVars[2].GetType());
Assert.AreEqual(typeof(PropertyVariable), subVars[3].GetType());
debugger.Continue();
WaitForPause(PausedReason.Break, null);
Assert.AreEqual(typeof(ObjectValue), baseClass.Value.GetType());
Assert.AreEqual(false, baseClass.Value.IsExpired);
Assert.AreEqual("{Debugger.Tests.TestPrograms.BaseClass}", baseClass.Value.AsString);
debugger.Continue();
debugger.WaitForPrecessExit();
}
}
}

1
src/AddIns/Misc/Debugger/Debugger.Tests/Project/Src/TestProgram.cs

@ -28,6 +28,7 @@ namespace Debugger.Tests @@ -28,6 +28,7 @@ namespace Debugger.Tests
case "FunctionLocalVariables": Progs.FunctionLocalVariables.Main(); break;
case "FunctionVariablesLifetime": Progs.FunctionVariablesLifetime.Main(); break;
case "HelloWorld": Progs.HelloWorld.Main(); break;
case "ObjectValue": Progs.ObjectValue.Main(); break;
case "SimpleProgram": Progs.SimpleProgram.Main(); break;
case "Stepping": Progs.Stepping.Main(); break;
case "Symbols": Progs.Symbols.Main(); break;

36
src/AddIns/Misc/Debugger/Debugger.Tests/Project/Src/TestPrograms/ObjectValue.cs

@ -0,0 +1,36 @@ @@ -0,0 +1,36 @@
// <file>
// <copyright see="prj:///doc/copyright.txt">2002-2005 AlphaSierraPapa</copyright>
// <license see="prj:///doc/license.txt">GNU General Public License</license>
// <owner name="David Srbecký" email="dsrbecky@gmail.com"/>
// <version>$Revision$</version>
// </file>
using System;
namespace Debugger.Tests.TestPrograms
{
public class BaseClass
{
}
public class ObjectValue: BaseClass
{
string privateField = "private";
public string publicFiled = "public";
public string PublicProperty {
get {
return privateField;
}
}
public static void Main()
{
ObjectValue val = new ObjectValue();
System.Diagnostics.Debugger.Break();
val.privateField = "new private";
System.Diagnostics.Debugger.Break();
}
}
}
Loading…
Cancel
Save