mirror of
https://github.com/ivellioscolin/pykd.git
synced 2025-04-21 12:53:23 +08:00
[test] added : testNamespace ( getting types and vars declared within namespaces )
git-svn-id: https://pykd.svn.codeplex.com/svn@68337 9b283d60-5439-405e-af05-b73fd8c4d996
This commit is contained in:
parent
621138b107
commit
ee9f1f0944
@ -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" )
|
||||
@ -33,5 +35,16 @@ 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 )
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -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" );
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
Loading…
Reference in New Issue
Block a user