Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 3865471

Browse files
committed
add test that reproduces the stackoverflowexception.
1 parent 8029ffe commit 3865471

File tree

3 files changed

+33
-0
lines changed

3 files changed

+33
-0
lines changed

src/testing/subclasstest.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,17 @@ public virtual void OnTestEvent(int value)
6464
}
6565
}
6666

67+
public abstract class RecursiveInheritance
68+
{
69+
public class SubClass : RecursiveInheritance
70+
{
71+
public void SomeMethod()
72+
{
73+
74+
}
75+
}
76+
}
77+
6778
public class TestFunctions
6879
{
6980
public static string test_foo(IInterfaceTest x)

src/tests/test_suite/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@
44

55
from .test_import import test_suite as import_tests
66
from .test_callback import test_suite as callback_tests
7+
from .test_recursiveTypes import test_suite as recursiveTypes_tests
78

89
def test_suite():
910
suite = unittest.TestSuite()
1011
suite.addTests((import_tests(),))
1112
suite.addTests((callback_tests(),))
13+
suite.addTests((recursiveTypes_tests(),))
1214
return suite
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import unittest, sys
2+
import clr
3+
4+
this_module = sys.modules[__name__]
5+
clr.AddReference("Python.Test")
6+
class RecursiveTypesTests(unittest.TestCase):
7+
"""Test if interop with recursive type inheritance works."""
8+
9+
def testRecursiveTypeCreation(self):
10+
"""Test that a recursive types don't crash with a StackOverflowException"""
11+
import Python.Test as Test
12+
from Python.Test import RecursiveInheritance
13+
test_instance = RecursiveInheritance.SubClass()
14+
test_instance.SomeMethod()
15+
pass
16+
17+
18+
def test_suite():
19+
return unittest.makeSuite(RecursiveTypesTests)
20+

0 commit comments

Comments
 (0)