Browse Source

Added debugger tests: Break, Symbols

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@861 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
David Srbecký 20 years ago
parent
commit
33f995f783
  1. 2
      src/AddIns/Misc/Debugger/Debugger.Tests/Project/Debugger.Tests.csproj
  2. 57
      src/AddIns/Misc/Debugger/Debugger.Tests/Project/Src/DebuggerTests.cs
  3. 6
      src/AddIns/Misc/Debugger/Debugger.Tests/Project/Src/TestProgram.cs
  4. 19
      src/AddIns/Misc/Debugger/Debugger.Tests/Project/Src/TestPrograms/Break.cs
  5. 5
      src/AddIns/Misc/Debugger/Debugger.Tests/Project/Src/TestPrograms/Breakpoint.cs
  6. 19
      src/AddIns/Misc/Debugger/Debugger.Tests/Project/Src/TestPrograms/Symbols.cs

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

@ -43,6 +43,8 @@ @@ -43,6 +43,8 @@
<Compile Include="Src\TestProgram.cs" />
<Compile Include="Src\TestPrograms\HelloWorld.cs" />
<Compile Include="Src\TestPrograms\Breakpoint.cs" />
<Compile Include="Src\TestPrograms\Symbols.cs" />
<Compile Include="Src\TestPrograms\Break.cs" />
</ItemGroup>
<ItemGroup>
<Folder Include="Src" />

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

@ -27,9 +27,14 @@ namespace Debugger.Tests @@ -27,9 +27,14 @@ namespace Debugger.Tests
NDebugger debugger;
string log;
string lastLogMessage;
string assemblyFilename;
string assemblyDir;
public DebuggerTests()
{
assemblyFilename = Assembly.GetExecutingAssembly().Location;
assemblyDir = Path.GetDirectoryName(assemblyFilename);
debugger = new NDebugger();
debugger.MTA2STA.CallMethod = CallMethod.Manual;
debugger.LogMessage += delegate(object sender, MessageEventArgs e) {
@ -42,8 +47,7 @@ namespace Debugger.Tests @@ -42,8 +47,7 @@ namespace Debugger.Tests
{
log = "";
lastLogMessage = null;
string filename = Assembly.GetCallingAssembly().Location;
debugger.Start(filename, Path.GetDirectoryName(filename), name);
debugger.Start(assemblyFilename, assemblyDir, name);
}
@ -51,6 +55,7 @@ namespace Debugger.Tests @@ -51,6 +55,7 @@ namespace Debugger.Tests
public void SimpleProgram()
{
StartProgram("SimpleProgram");
debugger.WaitForPrecessExit();
}
@ -58,28 +63,66 @@ namespace Debugger.Tests @@ -58,28 +63,66 @@ namespace Debugger.Tests
public void HelloWorld()
{
StartProgram("HelloWorld");
debugger.WaitForPrecessExit();
Assert.AreEqual("Hello world!\r\n", log);
}
[Test, Ignore("Does not work for first time")]
[Test]
public void Break()
{
StartProgram("Break");
debugger.WaitForPause();
Assert.AreEqual(PausedReason.Break, debugger.PausedReason);
debugger.Continue();
debugger.WaitForPrecessExit();
}
[Test]
public void Symbols()
{
StartProgram("Symbols");
debugger.WaitForPause();
Assert.AreEqual(PausedReason.Break, debugger.PausedReason);
Assert.AreEqual("debugger.tests.exe", Path.GetFileName(assemblyFilename).ToLower());
Assert.AreEqual(true, debugger.GetModule(Path.GetFileName(assemblyFilename)).SymbolsLoaded, "Module symbols not loaded");
debugger.Continue();
debugger.WaitForPrecessExit();
}
[Test]
public void Breakpoint()
{
debugger.AddBreakpoint("Breakpoint.cs", 16);
Breakpoint b = debugger.AddBreakpoint(@"D:\corsavy\SharpDevelop\src\AddIns\Misc\Debugger\Debugger.Tests\Project\Src\TestPrograms\Breakpoint.cs", 18);
StartProgram("Breakpoint");
debugger.WaitForPause();
Assert.AreEqual(PausedReason.Breakpoint, debugger.PausedReason);
Assert.AreEqual(PausedReason.Break, debugger.PausedReason);
Assert.AreEqual("", log);
Assert.AreEqual(true, b.Enabled);
Assert.AreEqual(true, b.HadBeenSet, "Breakpoint is not set");
Assert.AreEqual(18, b.SourcecodeSegment.StartLine);
debugger.Continue();
debugger.WaitForPause();
Assert.AreEqual(PausedReason.Breakpoint, debugger.PausedReason, "Breakpoint was not hit");
Assert.AreEqual("Mark 1\r\n", log);
debugger.Continue();
debugger.WaitForPause();
Assert.AreEqual(PausedReason.Break, debugger.PausedReason);
Assert.AreEqual("Mark 1\r\nMark 2\r\n", log);
debugger.Continue();
debugger.WaitForPrecessExit();
Assert.AreEqual("Line 16\r\n", log);
Assert.AreEqual("Mark 1\r\nMark 2\r\n", log);
}
}
}

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

@ -19,9 +19,11 @@ namespace Debugger.Tests @@ -19,9 +19,11 @@ namespace Debugger.Tests
return;
}
switch (args[0]) {
case "SimpleProgram": Progs.SimpleProgram.Main(); break;
case "HelloWorld": Progs.HelloWorld.Main(); break;
case "Break": Progs.Break.Main(); break;
case "Breakpoint": Progs.Breakpoint.Main(); break;
case "HelloWorld": Progs.HelloWorld.Main(); break;
case "SimpleProgram": Progs.SimpleProgram.Main(); break;
case "Symbols": Progs.Symbols.Main(); break;
}
}
}

19
src/AddIns/Misc/Debugger/Debugger.Tests/Project/Src/TestPrograms/Break.cs

@ -0,0 +1,19 @@ @@ -0,0 +1,19 @@
// <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 Break
{
public static void Main()
{
System.Diagnostics.Debugger.Break();
}
}
}

5
src/AddIns/Misc/Debugger/Debugger.Tests/Project/Src/TestPrograms/Breakpoint.cs

@ -13,7 +13,10 @@ namespace Debugger.Tests.TestPrograms @@ -13,7 +13,10 @@ namespace Debugger.Tests.TestPrograms
{
public static void Main()
{
System.Diagnostics.Debug.WriteLine("Line 16");
System.Diagnostics.Debugger.Break();
System.Diagnostics.Debug.WriteLine("Mark 1");
System.Diagnostics.Debug.WriteLine("Mark 2"); // Breakpoint
System.Diagnostics.Debugger.Break();
}
}
}

19
src/AddIns/Misc/Debugger/Debugger.Tests/Project/Src/TestPrograms/Symbols.cs

@ -0,0 +1,19 @@ @@ -0,0 +1,19 @@
// <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 Symbols
{
public static void Main()
{
System.Diagnostics.Debugger.Break();
}
}
}
Loading…
Cancel
Save