diff --git a/test/scripts/moduletest.py b/test/scripts/moduletest.py index 506d2ac..729999e 100644 --- a/test/scripts/moduletest.py +++ b/test/scripts/moduletest.py @@ -63,11 +63,11 @@ class ModuleTest( unittest.TestCase ): fileName = pykd.getSourceFile(target.module.FuncWithName0 ) self.assertTrue( re.search('targetapp\\.cpp', fileName ) ) fileName, lineNo, displacement = pykd.getSourceLine( target.module.FuncWithName0 + 2) - self.assertEqual( 393, lineNo ) + self.assertEqual( 395, lineNo ) self.assertTrue( re.search('targetapp\\.cpp', fileName ) ) self.assertEqual( 2, displacement ) fileName, lineNo, displacement = pykd.getSourceLine() - self.assertEqual( 639, lineNo ) + self.assertEqual( 644, lineNo ) def testEnumSymbols( self ): lst = target.module.enumSymbols() diff --git a/test/scripts/typedvar.py b/test/scripts/typedvar.py index 632097c..e9d7fc1 100644 --- a/test/scripts/typedvar.py +++ b/test/scripts/typedvar.py @@ -289,3 +289,13 @@ class TypedVarTest( unittest.TestCase ): for field in tv: str( field ) + def testDeadlockList(self): + + lst = [] + entry = pykd.typedVar("entry1").Flink + for i in range( 0, 100000 ): + lst.append(entry) + entry = entry.deref().Flink + + + diff --git a/test/targetapp/targetapp.cpp b/test/targetapp/targetapp.cpp index 640360f..1e21075 100644 --- a/test/targetapp/targetapp.cpp +++ b/test/targetapp/targetapp.cpp @@ -197,6 +197,8 @@ listStruct g_listItem1 = { 1 }; listStruct g_listItem2 = { 2 }; listStruct g_listItem3 = { 3 }; +LIST_ENTRY entry1; +LIST_ENTRY entry2; struct listStruct1; @@ -596,6 +598,9 @@ int _tmain(int argc, _TCHAR* argv[]) InsertTailList( &g_listHead, &g_listItem2.listEntry ); InsertTailList( &g_listHead, &g_listItem3.listEntry ); + entry1.Flink = &entry2; + entry2.Flink = &entry1; + g_listHead1 = &g_listItem11; g_listItem11.next = &g_listItem12; g_listItem12.next = &g_listItem13;