[0.1.x] + test of nested structure

git-svn-id: https://pykd.svn.codeplex.com/svn@73296 9b283d60-5439-405e-af05-b73fd8c4d996
This commit is contained in:
SND\EreTIk_cp 2012-01-19 10:16:07 +00:00 committed by Mikhail I. Izmestev
parent 858c5f2492
commit 7532741252
2 changed files with 51 additions and 32 deletions

View File

@ -132,6 +132,10 @@ class TypeInfoTest( unittest.TestCase ):
ti = target.module.type("classChild") ti = target.module.type("classChild")
self.assertRaises( pykd.BaseException, ti.deref ); self.assertRaises( pykd.BaseException, ti.deref );
def testNestedStruct( self ):
ti = target.module.type("StructWithNested")
self.assertTrue( hasattr( ti, "m_field" ) )
self.assertFalse( hasattr( ti, "m_nestedFiled" ) )
ti = target.module.type("StructWithNested::Nested")
self.assertTrue( hasattr( ti, "m_nestedFiled" ) )

View File

@ -204,6 +204,16 @@ struct {
int m_fieldOfUnNamed; int m_fieldOfUnNamed;
}g_unNamedStruct; }g_unNamedStruct;
struct StructWithNested {
struct Nested {
int m_nestedFiled;
};
int m_field;
};
StructWithNested g_structWithNested;
StructWithNested::Nested g_structNested;
#pragma pack( pop ) #pragma pack( pop )
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
@ -265,6 +275,7 @@ void FuncWithName0()
std::cout << g_bigValue; std::cout << g_bigValue;
std::cout << g_classChild.m_enumField; std::cout << g_classChild.m_enumField;
std::cout << g_unNamedStruct.m_fieldNestedStruct; std::cout << g_unNamedStruct.m_fieldNestedStruct;
std::cout << g_structNested.m_nestedFiled;
} }
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
@ -283,6 +294,7 @@ void FuncWithName1(int a)
std::cout << _struct2.m_struct.m_field1; std::cout << _struct2.m_struct.m_field1;
std::cout << g_string; std::cout << g_string;
std::cout << g_unNamedStruct.m_fieldOfUnNamed; std::cout << g_unNamedStruct.m_fieldOfUnNamed;
std::cout << g_structWithNested.m_field;
} }
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
@ -377,6 +389,9 @@ int _tmain(int argc, _TCHAR* argv[])
g_unNamedStruct.m_fieldNestedStruct = 4; g_unNamedStruct.m_fieldNestedStruct = 4;
g_unNamedStruct.m_fieldOfUnNamed = 5; g_unNamedStruct.m_fieldOfUnNamed = 5;
g_structWithNested.m_field = 34;
g_structNested.m_nestedFiled = 46;
// Let test scripts to execute // Let test scripts to execute
__debugbreak(); __debugbreak();