mirror of
https://github.com/ivellioscolin/pykd.git
synced 2025-04-29 11:53:23 +08:00
[0.3.x] updated : test
git-svn-id: https://pykd.svn.codeplex.com/svn@83852 9b283d60-5439-405e-af05-b73fd8c4d996
This commit is contained in:
parent
2b04d786b2
commit
e0fc219466
@ -452,12 +452,12 @@ BOOST_PYTHON_MODULE( pykd )
|
|||||||
"Return field's type" )
|
"Return field's type" )
|
||||||
//.def( "asMap", &kdlib::TypeInfo::asMap,
|
//.def( "asMap", &kdlib::TypeInfo::asMap,
|
||||||
// "Return type as python dict ( for enum types )" )
|
// "Return type as python dict ( for enum types )" )
|
||||||
//.def( "deref", &kdlib::TypeInfo::deref,
|
.def( "deref", &kdlib::TypeInfo::deref,
|
||||||
// "Return type of pointer" )
|
"Return type of pointer" )
|
||||||
//.def( "append", &kdlib::TypeInfo::appendField,
|
//.def( "append", &kdlib::TypeInfo::appendField,
|
||||||
// "Add a new field to custom defined struct" )
|
// "Add a new field to custom defined struct" )
|
||||||
//.def( "ptrTo", &kdlib::TypeInfo::ptrTo,
|
.def( "ptrTo", &kdlib::TypeInfo::ptrTo,
|
||||||
// "Return pointer to the type" )
|
"Return pointer to the type" )
|
||||||
//.def( "arrayOf", &kdlib::TypeInfo::arrayOf,
|
//.def( "arrayOf", &kdlib::TypeInfo::arrayOf,
|
||||||
// "Return array of the type" )
|
// "Return array of the type" )
|
||||||
.def( "__str__", &TypeInfoAdapter::print,
|
.def( "__str__", &TypeInfoAdapter::print,
|
||||||
@ -482,10 +482,10 @@ BOOST_PYTHON_MODULE( pykd )
|
|||||||
"Return field of structure as an object attribute" )
|
"Return field of structure as an object attribute" )
|
||||||
//.def( "dataKind", &kdlib::TypedVar::getDataKind,
|
//.def( "dataKind", &kdlib::TypedVar::getDataKind,
|
||||||
// "Retrieves the variable classification of a data: DataIsXxx")
|
// "Retrieves the variable classification of a data: DataIsXxx")
|
||||||
/* .def("deref", &kdlib::TypedVar::deref,
|
// .def("deref", &kdlib::TypedVar::deref,
|
||||||
"Return value by pointer" )
|
// "Return value by pointer" )
|
||||||
.def("type", &kdlib::TypedVar::getType,
|
.def("type", &kdlib::TypedVar::getType,
|
||||||
"Return typeInfo instance" )*/
|
"Return typeInfo instance" )
|
||||||
.def("__getattr__", TypedVarAdapter::getField,
|
.def("__getattr__", TypedVarAdapter::getField,
|
||||||
"Return field of structure as an object attribute" )
|
"Return field of structure as an object attribute" )
|
||||||
.def( "__str__", &TypedVarAdapter::print )
|
.def( "__str__", &TypedVarAdapter::print )
|
||||||
|
@ -66,14 +66,14 @@ class MemoryTest( unittest.TestCase ):
|
|||||||
self.assertEqual( 0, len( [ loadArray[i] for i in xrange(len(testArray)) if loadArray[i] != testArray[i] ] ) )
|
self.assertEqual( 0, len( [ loadArray[i] for i in xrange(len(testArray)) if loadArray[i] != testArray[i] ] ) )
|
||||||
|
|
||||||
def testPtrRead( self ):
|
def testPtrRead( self ):
|
||||||
self.assertEqual( 0x80, pykd.ptrByte( target.module.g_bigValue ) )
|
self.assertEqual( 0x80, pykd.ptrByte( target.module.bigValue ) )
|
||||||
self.assertEqual( 0x8080, pykd.ptrWord( target.module.g_bigValue ) )
|
self.assertEqual( 0x8080, pykd.ptrWord( target.module.bigValue ) )
|
||||||
self.assertEqual( 0x80808080, pykd.ptrDWord( target.module.g_bigValue ) )
|
self.assertEqual( 0x80808080, pykd.ptrDWord( target.module.bigValue ) )
|
||||||
self.assertEqual( 0x8080808080808080, pykd.ptrQWord( target.module.g_bigValue ) )
|
self.assertEqual( 0x8080808080808080, pykd.ptrQWord( target.module.bigValue ) )
|
||||||
self.assertEqual( -128, pykd.ptrSignByte( target.module.g_bigValue ) )
|
self.assertEqual( -128, pykd.ptrSignByte( target.module.bigValue ) )
|
||||||
self.assertEqual( -32640, pykd.ptrSignWord( target.module.g_bigValue ) )
|
self.assertEqual( -32640, pykd.ptrSignWord( target.module.bigValue ) )
|
||||||
self.assertEqual( -2139062144, pykd.ptrSignDWord( target.module.g_bigValue ) )
|
self.assertEqual( -2139062144, pykd.ptrSignDWord( target.module.bigValue ) )
|
||||||
self.assertEqual( -9187201950435737472, pykd.ptrSignQWord( target.module.g_bigValue ) )
|
self.assertEqual( -9187201950435737472, pykd.ptrSignQWord( target.module.bigValue ) )
|
||||||
|
|
||||||
def testCompare( self ):
|
def testCompare( self ):
|
||||||
self.assertTrue( pykd.compareMemory( target.module.helloStr, pykd.ptrPtr(target.module.strArray), 5 ) )
|
self.assertTrue( pykd.compareMemory( target.module.helloStr, pykd.ptrPtr(target.module.strArray), 5 ) )
|
||||||
|
@ -46,47 +46,47 @@ class TypeInfoTest( unittest.TestCase ):
|
|||||||
|
|
||||||
def testBaseTypes( self ):
|
def testBaseTypes( self ):
|
||||||
|
|
||||||
self.assertEqual("Int1B", target.module.type( "Int1B" ).name() )
|
self.assertEqual("Int1B", pykd.typeInfo( "Int1B" ).name() )
|
||||||
self.assertEqual("Int2B", target.module.type( "Int2B" ).name() )
|
self.assertEqual("Int2B", pykd.typeInfo( "Int2B" ).name() )
|
||||||
self.assertEqual("Int4B", target.module.type( "Int4B" ).name() )
|
self.assertEqual("Int4B", pykd.typeInfo( "Int4B" ).name() )
|
||||||
self.assertEqual("Int8B", target.module.type( "Int8B" ).name() )
|
self.assertEqual("Int8B", pykd.typeInfo( "Int8B" ).name() )
|
||||||
self.assertEqual("UInt1B", target.module.type( "UInt1B" ).name() )
|
self.assertEqual("UInt1B", pykd.typeInfo( "UInt1B" ).name() )
|
||||||
self.assertEqual("UInt2B", target.module.type( "UInt2B" ).name() )
|
self.assertEqual("UInt2B", pykd.typeInfo( "UInt2B" ).name() )
|
||||||
self.assertEqual("UInt4B", target.module.type( "UInt4B" ).name() )
|
self.assertEqual("UInt4B", pykd.typeInfo( "UInt4B" ).name() )
|
||||||
self.assertEqual("UInt8B", target.module.type( "UInt8B" ).name() )
|
self.assertEqual("UInt8B", pykd.typeInfo( "UInt8B" ).name() )
|
||||||
|
|
||||||
self.assertEqual("Long", target.module.type( "Long" ).name() )
|
self.assertEqual("Long", pykd.typeInfo( "Long" ).name() )
|
||||||
self.assertEqual("ULong", target.module.type( "ULong" ).name() )
|
self.assertEqual("ULong", pykd.typeInfo( "ULong" ).name() )
|
||||||
self.assertEqual("Bool", target.module.type( "Bool" ).name() )
|
self.assertEqual("Bool", pykd.typeInfo( "Bool" ).name() )
|
||||||
self.assertEqual("Char", target.module.type("Char").name() )
|
self.assertEqual("Char", pykd.typeInfo("Char").name() )
|
||||||
self.assertEqual("WChar", target.module.type("WChar").name() )
|
self.assertEqual("WChar", pykd.typeInfo("WChar").name() )
|
||||||
|
|
||||||
self.assertEqual( 1, target.module.type("Int1B").size() )
|
self.assertEqual( 1, pykd.typeInfo("Int1B").size() )
|
||||||
self.assertEqual( 1, target.module.type("UInt1B").size() )
|
self.assertEqual( 1, pykd.typeInfo("UInt1B").size() )
|
||||||
self.assertEqual( 2, target.module.type("Int2B").size() )
|
self.assertEqual( 2, pykd.typeInfo("Int2B").size() )
|
||||||
self.assertEqual( 2, target.module.type("UInt2B").size() )
|
self.assertEqual( 2, pykd.typeInfo("UInt2B").size() )
|
||||||
self.assertEqual( 4, target.module.type("Int4B").size() )
|
self.assertEqual( 4, pykd.typeInfo("Int4B").size() )
|
||||||
self.assertEqual( 4, target.module.type("UInt4B").size() )
|
self.assertEqual( 4, pykd.typeInfo("UInt4B").size() )
|
||||||
self.assertEqual( 8, target.module.type("Int8B").size() )
|
self.assertEqual( 8, pykd.typeInfo("Int8B").size() )
|
||||||
self.assertEqual( 8, target.module.type("UInt8B").size() )
|
self.assertEqual( 8, pykd.typeInfo("UInt8B").size() )
|
||||||
|
|
||||||
self.assertEqual( 4, target.module.type("Long" ).size() )
|
self.assertEqual( 4, pykd.typeInfo("Long" ).size() )
|
||||||
self.assertEqual( 4, target.module.type("ULong" ).size() )
|
self.assertEqual( 4, pykd.typeInfo("ULong" ).size() )
|
||||||
self.assertEqual( 1, target.module.type("Bool" ).size() )
|
self.assertEqual( 1, pykd.typeInfo("Bool" ).size() )
|
||||||
self.assertEqual( 1, target.module.type("Char").size() )
|
self.assertEqual( 1, pykd.typeInfo("Char").size() )
|
||||||
self.assertEqual( 2, target.module.type("WChar").size() )
|
self.assertEqual( 2, pykd.typeInfo("WChar").size() )
|
||||||
|
|
||||||
try:
|
try:
|
||||||
self.assertEqual("Int9B", target.module.type( "Int9B" ).name() )
|
self.assertEqual("Int9B", pykd.typeInfo( "Int9B" ).name() )
|
||||||
except pykd.SymbolException:
|
except pykd.SymbolException:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def testBaseTypePtr(self):
|
def testBaseTypePtr(self):
|
||||||
self.assertEqual("Int1B*", target.module.type( "Int1B*" ).name() )
|
self.assertEqual("Int1B*", pykd.typeInfo( "Int1B*" ).name() )
|
||||||
self.assertEqual("Int1B", target.module.type( "Int1B*" ).deref().name() )
|
self.assertEqual("Int1B", pykd.typeInfo( "Int1B*" ).deref().name() )
|
||||||
|
|
||||||
def testBaseTypeArray(self):
|
def testBaseTypeArray(self):
|
||||||
self.assertEqual("Int4B[20]", target.module.type( "Int4B[20]" ).name() )
|
self.assertEqual("Int4B[20]", pykd.typeInfo( "Int4B[20]" ).name() )
|
||||||
|
|
||||||
def testName( self ):
|
def testName( self ):
|
||||||
ti1 = target.module.type( "classChild" )
|
ti1 = target.module.type( "classChild" )
|
||||||
@ -158,14 +158,17 @@ class TypeInfoTest( unittest.TestCase ):
|
|||||||
self.assertEqual( { 1 : "ONE", 2 : "TWO", 3 : "THREE" }, ti.asMap() )
|
self.assertEqual( { 1 : "ONE", 2 : "TWO", 3 : "THREE" }, ti.asMap() )
|
||||||
|
|
||||||
def testDeref(self):
|
def testDeref(self):
|
||||||
ti = target.module.type("listStruct1")
|
ti = pykd.typeInfo("Int1B*")
|
||||||
self.assertEqual( "listStruct1", ti.next.deref().name() )
|
self.assertEqual( "Int1B", ti.deref().name() )
|
||||||
|
|
||||||
ti = target.module.type("listStruct1*")
|
ti = target.module.type("structTest*")
|
||||||
self.assertEqual( "listStruct1", ti.deref().name() )
|
self.assertEqual( "structTest", ti.deref().name() )
|
||||||
|
|
||||||
|
ti = pykd.typeInfo("structTest[2]")
|
||||||
|
self.assertRaises( pykd.TypeException, ti.deref );
|
||||||
|
|
||||||
ti = target.module.type("classChild")
|
ti = target.module.type("classChild")
|
||||||
self.assertRaises( pykd.BaseException, ti.deref );
|
self.assertRaises( pykd.TypeException, ti.deref );
|
||||||
|
|
||||||
def testNestedStruct( self ):
|
def testNestedStruct( self ):
|
||||||
ti = target.module.type("structWithNested")
|
ti = target.module.type("structWithNested")
|
||||||
@ -222,8 +225,8 @@ class TypeInfoTest( unittest.TestCase ):
|
|||||||
self.assertEqual( 0, len(ti) )
|
self.assertEqual( 0, len(ti) )
|
||||||
|
|
||||||
def testDerefName(self):
|
def testDerefName(self):
|
||||||
entry = pykd.typedVar("entry1").Flink
|
entry = pykd.typedVar("g_listHead").flink
|
||||||
self.assertEqual( "_LIST_ENTRY*", entry.type().name() )
|
self.assertEqual( "listEntry*", entry.type().name() )
|
||||||
|
|
||||||
def testPtrTo(self):
|
def testPtrTo(self):
|
||||||
ti = pykd.typeInfo("UInt8B").ptrTo()
|
ti = pykd.typeInfo("UInt8B").ptrTo()
|
||||||
|
Loading…
Reference in New Issue
Block a user