1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
using System;
using NUnit.Framework;
using Mono.Debugger;
using Mono.Debugger.Languages;
using Mono.Debugger.Frontend;
namespace Mono.Debugger.Tests
{
[TestFixture]
public class TestNamespace : TestSuite
{
public TestNamespace ()
: base ("TestNamespace")
{ }
[Test]
[Category("ManagedTypes")]
public void Main ()
{
Process process = Start ();
Assert.IsTrue (process.IsManaged);
Assert.IsTrue (process.MainThread.IsStopped);
Thread thread = process.MainThread;
const int line_main = 36;
const int line_main_2 = 37;
const int line_world = 12;
const int line_test = 46;
AssertStopped (thread, "Test.X.Main()", line_main);
int bpt_main_2 = AssertBreakpoint (line_main_2);
int bpt_world = AssertBreakpoint (line_world);
int bpt_test = AssertBreakpoint ("Y.Test");
AssertExecute ("continue");
AssertHitBreakpoint (thread, bpt_world, "Martin.Baulig.Hello.World()",
line_world);
AssertPrint (thread, "Foo.Print ()", "(string) \"Boston\"");
AssertPrintException (thread, "Foo.Print",
"Expression `Martin.Baulig.Foo.Print' is a method, " +
"not a field or property.");
AssertPrint (thread, "Foo.Boston", "(string) \"Boston\"");
AssertPrint (thread, "Martin.Baulig.Foo.Boston", "(string) \"Boston\"");
AssertExecute ("continue");
AssertTargetOutput ("Boston");
AssertNoTargetOutput ();
AssertHitBreakpoint (thread, bpt_main_2, "Test.X.Main()", line_main_2);
AssertPrint (thread, "Martin.Baulig.Foo.Boston", "(string) \"Boston\"");
AssertExecute ("continue");
AssertHitBreakpoint (thread, bpt_test, "Y.Test()", line_test);
AssertPrint (thread, "Martin.Baulig.Foo.Boston", "(string) \"Boston\"");
AssertPrint (thread, "Martin.Baulig.Foo.Print ()", "(string) \"Boston\"");
AssertExecute ("continue");
AssertTargetExited (thread.Process);
}
}
}
|