Author: martin
Date: 2008-01-25 15:15:18 -0500 (Fri, 25 Jan 2008)
New Revision: 93955

Added:
   branches/martin/debugger-terrania/debugger/test/src/TestRecursiveGenerics.cs
   
branches/martin/debugger-terrania/debugger/test/testsuite/TestRecursiveGenerics.cs
Modified:
   branches/martin/debugger-terrania/debugger/ChangeLog
   branches/martin/debugger-terrania/debugger/test/src/Makefile.am
Log:
2008-01-25  Martin Baulig  <[EMAIL PROTECTED]>

        * test/{testsuite|src}/TestRecursiveGenerics.cs: New test.



Modified: branches/martin/debugger-terrania/debugger/ChangeLog
===================================================================
--- branches/martin/debugger-terrania/debugger/ChangeLog        2008-01-25 
20:09:04 UTC (rev 93954)
+++ branches/martin/debugger-terrania/debugger/ChangeLog        2008-01-25 
20:15:18 UTC (rev 93955)
@@ -1,5 +1,9 @@
 2008-01-25  Martin Baulig  <[EMAIL PROTECTED]>
 
+       * test/{testsuite|src}/TestRecursiveGenerics.cs: New test.
+
+2008-01-25  Martin Baulig  <[EMAIL PROTECTED]>
+
        Fix the parent type madness.
 
        * languages/TargetClass.cs

Modified: branches/martin/debugger-terrania/debugger/test/src/Makefile.am
===================================================================
--- branches/martin/debugger-terrania/debugger/test/src/Makefile.am     
2008-01-25 20:09:04 UTC (rev 93954)
+++ branches/martin/debugger-terrania/debugger/test/src/Makefile.am     
2008-01-25 20:15:18 UTC (rev 93955)
@@ -12,7 +12,7 @@
        TestBreakpoint.cs TestNamespace.cs TestException.cs \
        TestRestart.cs TestExec.cs TestChild.cs TestAttach.cs \
        TestMethodLookup.cs TestMultiThread.cs TestSession.cs \
-       TestCCtor.cs TestSimpleGenerics.cs
+       TestCCtor.cs TestSimpleGenerics.cs TestRecursiveGenerics.cs
 
 EXTRA_TEST_SRC = \
        TestAppDomain.cs TestAppDomain-Module.cs TestAppDomain-Hello.cs \

Added: 
branches/martin/debugger-terrania/debugger/test/src/TestRecursiveGenerics.cs
===================================================================
--- 
branches/martin/debugger-terrania/debugger/test/src/TestRecursiveGenerics.cs    
    2008-01-25 20:09:04 UTC (rev 93954)
+++ 
branches/martin/debugger-terrania/debugger/test/src/TestRecursiveGenerics.cs    
    2008-01-25 20:15:18 UTC (rev 93955)
@@ -0,0 +1,28 @@
+using System;
+
+public class Foo<T>
+{
+       public T Data;
+
+       public void Hello ()
+       {
+               Console.WriteLine (Data);
+       }
+}
+
+public class Test : Foo<Test>
+{
+       public Test ()
+       {
+               Data = this;
+       }
+}
+
+class X
+{
+       static void Main ()
+       {
+               Test test = new Test ();
+               test.Hello ();
+       }
+}

Added: 
branches/martin/debugger-terrania/debugger/test/testsuite/TestRecursiveGenerics.cs
===================================================================
--- 
branches/martin/debugger-terrania/debugger/test/testsuite/TestRecursiveGenerics.cs
  2008-01-25 20:09:04 UTC (rev 93954)
+++ 
branches/martin/debugger-terrania/debugger/test/testsuite/TestRecursiveGenerics.cs
  2008-01-25 20:15:18 UTC (rev 93955)
@@ -0,0 +1,45 @@
+using System;
+using NUnit.Framework;
+
+using Mono.Debugger;
+using Mono.Debugger.Languages;
+using Mono.Debugger.Frontend;
+
+namespace Mono.Debugger.Tests
+{
+       [TestFixture]
+       public class TestRecursiveGenerics : TestSuite
+       {
+               public TestRecursiveGenerics ()
+                       : base ("TestRecursiveGenerics")
+               { }
+
+               const int LineMain = 25;
+
+               [Test]
+               [Category("Generics")]
+               public void Main ()
+               {
+                       Process process = Start ();
+                       Assert.IsTrue (process.IsManaged);
+                       Assert.IsTrue (process.MainThread.IsStopped);
+
+                       Thread thread = process.MainThread;
+
+                       AssertStopped (thread, "X.Main()", LineMain);
+
+                       AssertType (thread, "test",
+                                   "class Test : Foo`1<Test>\n{\n   .ctor 
();\n}");
+
+                       AssertExecute ("next");
+                       AssertStopped (thread, "X.Main()", LineMain + 1);
+
+                       AssertPrintRegex (thread, DisplayFormat.Object, "test",
+                                         @"\(Test\) { <Foo`1<Test>> = { Data = 
\(Test\) 0x[0-9a-f]+ } }");
+
+                       AssertExecute ("continue");
+                       AssertTargetOutput ("Test");
+                       AssertTargetExited (thread.Process);
+               }
+       }
+}

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to