mirror of
https://github.com/ivellioscolin/pykd.git
synced 2025-04-20 03:23:23 +08:00
[0.3.x] updated : stack tests
git-svn-id: https://pykd.svn.codeplex.com/svn@90801 9b283d60-5439-405e-af05-b73fd8c4d996
This commit is contained in:
parent
4dfe21f1f4
commit
f000805b41
@ -13,7 +13,9 @@ class StackTest(unittest.TestCase):
|
|||||||
|
|
||||||
def testGetStack(self):
|
def testGetStack(self):
|
||||||
|
|
||||||
expectedStack = [ 'targetapp!stackTestRun2',
|
expectedStack = [
|
||||||
|
'targetapp!stackTestClass::stackMethod',
|
||||||
|
'targetapp!stackTestRun2',
|
||||||
'targetapp!stackTestRun1',
|
'targetapp!stackTestRun1',
|
||||||
'targetapp!stackTestRun']
|
'targetapp!stackTestRun']
|
||||||
|
|
||||||
@ -22,20 +24,35 @@ class StackTest(unittest.TestCase):
|
|||||||
moduleName, symbolName, disp = pykd.findSymbolAndDisp( frame.ip )
|
moduleName, symbolName, disp = pykd.findSymbolAndDisp( frame.ip )
|
||||||
realStack.append( "%s!%s" % ( moduleName, symbolName ) )
|
realStack.append( "%s!%s" % ( moduleName, symbolName ) )
|
||||||
|
|
||||||
self.assertEqual( expectedStack, realStack[0:3])
|
self.assertEqual( expectedStack, realStack[0:4])
|
||||||
|
|
||||||
def testGetParams(self):
|
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"] )
|
frame0 = pykd.getFrame()
|
||||||
self.assertEqual( 10, pykd.getStack()[1].getParam("a") )
|
self.assertEqual( ["this", "a", "b"], [ name for name, param in frame0.getParams() ] )
|
||||||
self.assertEqual( 10, dict( pykd.getStack()[1].getParams() )["a"] )
|
|
||||||
|
|
||||||
|
frame1 = pykd.getStack()[1]
|
||||||
|
self.assertEqual( ["a", "b", "c"], [ name for name, param in frame1.getParams() ] )
|
||||||
|
self.assertEqual( 10, frame1.getParam("a").deref() )
|
||||||
|
self.assertEqual( 10, frame1.params["a"].deref() )
|
||||||
|
|
||||||
|
frame2 = pykd.getStack()[2]
|
||||||
|
self.assertEqual( 10, frame2.params["a"] )
|
||||||
|
self.assertEqual( 10, frame2.getParam("a") )
|
||||||
|
|
||||||
def testGetLocals(self):
|
def testGetLocals(self):
|
||||||
expectedLocals = ["localDouble", "localFloat", "localChars"]
|
expectedLocals = ["localDouble", "localFloat", "localChars"]
|
||||||
self.assertEqual( expectedLocals, [name for name, param in pykd.getStack()[1].getLocals() ] )
|
frame2 = pykd.getStack()[2]
|
||||||
self.assertEqual( 0.0, pykd.getStack()[1].locals["localDouble"] )
|
self.assertEqual( expectedLocals, [name for name, param in frame2.getLocals() ] )
|
||||||
|
self.assertEqual( 0.0, frame2.locals["localDouble"] )
|
||||||
|
|
||||||
|
def testGetParamsNoSymbol(self):
|
||||||
|
topFrame = pykd.getStack()[-1]
|
||||||
|
self.assertEqual(0, len(topFrame.getParams()))
|
||||||
|
|
||||||
|
def testGetLocalsNoSymbol(self):
|
||||||
|
topFrame = pykd.getStack()[-1]
|
||||||
|
self.assertEqual(0, len(topFrame.getLocals()))
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user