mirror of
https://github.com/ivellioscolin/pykd.git
synced 2025-04-20 03:23:23 +08:00
49 lines
1.7 KiB
Python
49 lines
1.7 KiB
Python
#
|
|
#
|
|
#
|
|
|
|
import unittest
|
|
import target
|
|
import pykd
|
|
|
|
class TypedVarTest( unittest.TestCase ):
|
|
|
|
def testCtor( self ):
|
|
tv = target.module.typedVar( "structTest", target.module.g_structTest )
|
|
tv = target.module.typedVar( "g_structTest" )
|
|
|
|
def testGetAddress( self ):
|
|
tv = target.module.typedVar( "structTest", target.module.g_structTest )
|
|
self.assertEqual( tv.getAddress(), target.module.g_structTest )
|
|
|
|
def testGetSize( self ):
|
|
tv1 = target.module.typedVar( "structTest", target.module.g_structTest )
|
|
self.assertEqual( 20, tv1.sizeof() )
|
|
#tv2 = target.module.typedVar( "structTest[2]", target.module.g_testArray )
|
|
#self.assertEqual( tv1.sizeof()*2, tv2.sizeof() )
|
|
|
|
def testByAddress( self ):
|
|
tv1 = target.module.typedVar( "structTest", target.module.g_structTest )
|
|
tv2 = target.module.typedVar( tv1.getAddress() )
|
|
self.assertEqual( tv2.getAddress(), tv1.getAddress() )
|
|
|
|
def testStruct(self):
|
|
tv1 = target.module.typedVar( "structTest", target.module.g_structTest )
|
|
self.assertEqual( 0, tv1.m_field0 )
|
|
self.assertEqual( 500, tv1.m_field1 )
|
|
self.assertEqual( True, tv1.m_field2 )
|
|
self.assertEqual( 1, tv1.m_field3 )
|
|
|
|
def testPtrField(self):
|
|
tv = target.module.typedVar( "g_structTest" )
|
|
self.assertEqual( 0, tv.m_field4 )
|
|
|
|
tv1 = target.module.typedVar( "g_structTest1" )
|
|
self.assertEqual( tv.getAddress(), tv1.m_field4 )
|
|
|
|
def testFieldOffset(self):
|
|
tv = target.module.typedVar( "g_structTest" )
|
|
self.assertEqual( 0, tv.m_field0.offset() )
|
|
self.assertEqual( 4, tv.m_field1.offset() )
|
|
self.assertEqual( 16, tv.m_field4.offset() )
|