mirror of
https://github.com/ivellioscolin/pykd.git
synced 2025-04-20 03:23: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" )
|
ti = pykd.typeInfo( target.moduleName, "Type1" )
|
||||||
self.assertEqual( hasattr( ti, "field1" ), True )
|
self.assertEqual( hasattr( ti, "field1" ), True )
|
||||||
self.assertEqual( hasattr( ti, "field2" ), True )
|
self.assertEqual( hasattr( ti, "field2" ), True )
|
||||||
|
self.assertEqual( hasattr( ti, "field3" ), True )
|
||||||
|
|
||||||
tv = pykd.typedVar( ti, target.module.var1 )
|
tv = pykd.typedVar( ti, target.module.var1 )
|
||||||
self.assertEqual( tv.field1, -121 )
|
self.assertEqual( tv.field1, -121 )
|
||||||
self.assertEqual( tv.field2, 220 )
|
self.assertEqual( tv.field2, 220 )
|
||||||
|
# self.assertLess( tv.field3 - 1.0095, 0.0001 )
|
||||||
|
|
||||||
def testEnumField(self):
|
def testEnumField(self):
|
||||||
ti = pykd.typeInfo( target.moduleName, "Type2" )
|
ti = pykd.typeInfo( target.moduleName, "Type2" )
|
||||||
@ -32,6 +34,17 @@ class TypeInfoTest( unittest.TestCase ):
|
|||||||
|
|
||||||
tv = pykd.typedVar( ti, target.module.var2 )
|
tv = pykd.typedVar( ti, target.module.var2 )
|
||||||
self.assertEqual( tv.field1, 100 )
|
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 "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 {
|
enum Enum1 {
|
||||||
|
|
||||||
Enum1Val1 = 100,
|
Enum1Val1 = 100,
|
||||||
@ -16,24 +32,54 @@ enum Enum1 {
|
|||||||
Enum1Val3 = 300
|
Enum1Val3 = 300
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
struct Type1 {
|
|
||||||
|
|
||||||
char field1;
|
|
||||||
|
|
||||||
unsigned char field2;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
Type1 var1 = { -121, 220 };
|
|
||||||
|
|
||||||
|
|
||||||
struct Type2 {
|
struct Type2 {
|
||||||
|
|
||||||
Enum1 field1;
|
Enum1 field1;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
Type2 var2 = { Enum1Val1 };
|
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