[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:
SND\kernelnet_cp 2013-05-29 14:21:28 +00:00 committed by Mikhail I. Izmestev
parent 2b04d786b2
commit e0fc219466
3 changed files with 55 additions and 52 deletions

View File

@ -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 )

View File

@ -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 ) )

View File

@ -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()