diff --git a/test/scripts/typeinfo.py b/test/scripts/typeinfo.py index e00f3fd..65e52b1 100644 --- a/test/scripts/typeinfo.py +++ b/test/scripts/typeinfo.py @@ -21,10 +21,12 @@ class TypeInfoTest( unittest.TestCase ): ti = pykd.typeInfo( target.moduleName, "Type1" ) self.assertEqual( hasattr( ti, "field1" ), True ) self.assertEqual( hasattr( ti, "field2" ), True ) + self.assertEqual( hasattr( ti, "field3" ), True ) tv = pykd.typedVar( ti, target.module.var1 ) self.assertEqual( tv.field1, -121 ) self.assertEqual( tv.field2, 220 ) +# self.assertLess( tv.field3 - 1.0095, 0.0001 ) def testEnumField(self): ti = pykd.typeInfo( target.moduleName, "Type2" ) @@ -32,6 +34,17 @@ class TypeInfoTest( unittest.TestCase ): tv = pykd.typedVar( ti, target.module.var2 ) self.assertEqual( tv.field1, 100 ) + + def testNamspace(self): + ti1 = pykd.typeInfo( target.moduleName, "Namespace1::Class1" ) + ti2 = pykd.typeInfo( target.moduleName, "Namespace1::Namespace2::Class2" ) + self.assertNotEqual( target.module.var3, 0 ) + self.assertNotEqual( target.module.var4, 0 ) + var3 = pykd.typedVar( ti1, target.module.var3 ) + var4 = pykd.typedVar( ti1, target.module.var4 ) + self.assertEqual( var3.m_field1, 50 ) + + diff --git a/test/targetapp/types.cpp b/test/targetapp/types.cpp index 96c056e..faf59c8 100644 --- a/test/targetapp/types.cpp +++ b/test/targetapp/types.cpp @@ -1,5 +1,7 @@ #include "stdafx.h" +#include <string> + /////////////////////////////////////////////////////////////////////////////// // ������� ���� @@ -9,6 +11,20 @@ unsigned char ucharVar = 200; /////////////////////////////////////////////////////////////////////////////// +struct Type1 { + + char field1; + + unsigned char field2; + + double field3; +}; + +Type1 var1 = { -121, 220, 1.0095f }; + +/////////////////////////////////////////////////////////////////////////////// + + enum Enum1 { Enum1Val1 = 100, @@ -16,24 +32,54 @@ enum Enum1 { Enum1Val3 = 300 }; - -struct Type1 { - - char field1; - - unsigned char field2; - -}; - -Type1 var1 = { -121, 220 }; - - struct Type2 { Enum1 field1; }; + Type2 var2 = { Enum1Val1 }; +/////////////////////////////////////////////////////////////////////////////// + +namespace Namespace1 { + + + class Class1 { + + public: + + Class1( unsigned long v1 ) : + m_field1( v1 ) + {} + + private: + + unsigned long m_field1; + + }; + + Class1 var3( 50 ); + + namespace Namespace2 { + + class Class2 { + + public: + + Class2( const std::string &str ) : + m_field1 ( str ) + {} + + private: + + std::string m_field1; + }; + + Class2 var4( "hello" ); + + }; +}; + /////////////////////////////////////////////////////////////////////////////// \ No newline at end of file