pykd/test/scripts/stacktest.py
SND\ussrhero_cp b8828155e0 [0.3.x] fixed : some test failure
git-svn-id: https://pykd.svn.codeplex.com/svn@90469 9b283d60-5439-405e-af05-b73fd8c4d996
2017-11-03 15:24:08 +04:00

42 lines
1.5 KiB
Python

import unittest
import pykd
import target
class StackTest(unittest.TestCase):
def setUp(self):
self.processId = pykd.startProcess( target.appPath + " stacktest" )
pykd.go() # skip initial breakpoint
def tearDown(self):
pykd.killProcess( self.processId )
def testGetStack(self):
expectedStack = [ 'targetapp!stackTestRun2',
'targetapp!stackTestRun1',
'targetapp!stackTestRun']
realStack = []
for frame in pykd.getStack():
moduleName, symbolName, disp = pykd.findSymbolAndDisp( frame.ip )
realStack.append( "%s!%s" % ( moduleName, symbolName ) )
self.assertEqual( expectedStack, realStack[0:3])
def testGetParams(self):
expectedParams = ["a", "b", "c"]
self.assertEqual( expectedParams, [ name for name, param in pykd.getParams()] )
self.assertEqual( 10, dict(pykd.getParams())["a"].deref() )
self.assertEqual( 10, pykd.getParam("a").deref() )
self.assertEqual( 10, pykd.getStack()[1].params["a"] )
self.assertEqual( 10, pykd.getStack()[1].getParam("a") )
self.assertEqual( 10, dict( pykd.getStack()[1].getParams() )["a"] )
def testGetLocals(self):
expectedLocals = ["localDouble", "localFloat", "localChars"]
self.assertEqual( expectedLocals, [name for name, param in pykd.getStack()[1].getLocals() ] )
self.assertEqual( 0.0, pykd.getStack()[1].locals["localDouble"] )