From f000805b41751a273f9c0d031caf501672349333 Mon Sep 17 00:00:00 2001 From: "SND\\kernelnet_cp" Date: Tue, 8 Sep 2015 08:33:50 +0000 Subject: [PATCH] [0.3.x] updated : stack tests git-svn-id: https://pykd.svn.codeplex.com/svn@90801 9b283d60-5439-405e-af05-b73fd8c4d996 --- test/scripts/stacktest.py | 41 +++++++++++++++++++++++++++------------ 1 file changed, 29 insertions(+), 12 deletions(-) diff --git a/test/scripts/stacktest.py b/test/scripts/stacktest.py index e3a8abd..09b7257 100644 --- a/test/scripts/stacktest.py +++ b/test/scripts/stacktest.py @@ -13,7 +13,9 @@ class StackTest(unittest.TestCase): def testGetStack(self): - expectedStack = [ 'targetapp!stackTestRun2', + expectedStack = [ + 'targetapp!stackTestClass::stackMethod', + 'targetapp!stackTestRun2', 'targetapp!stackTestRun1', 'targetapp!stackTestRun'] @@ -22,20 +24,35 @@ class StackTest(unittest.TestCase): moduleName, symbolName, disp = pykd.findSymbolAndDisp( frame.ip ) realStack.append( "%s!%s" % ( moduleName, symbolName ) ) - self.assertEqual( expectedStack, realStack[0:3]) + self.assertEqual( expectedStack, realStack[0:4]) 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"] ) + + frame0 = pykd.getFrame() + self.assertEqual( ["this", "a", "b"], [ name for name, param in frame0.getParams() ] ) + + + 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): 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"] ) + frame2 = pykd.getStack()[2] + 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())) +