From 0aec1a092c0f8e936825eb15b92e79f0d636a8e2 Mon Sep 17 00:00:00 2001 From: "SND\\EreTIk_cp" Date: Mon, 22 Apr 2013 15:53:28 +0000 Subject: [PATCH] [0.2.x] + test case for workitem 11723 git-svn-id: https://pykd.svn.codeplex.com/svn@83440 9b283d60-5439-405e-af05-b73fd8c4d996 --- test/scripts/mspdbtest.py | 28 ++++++++++++++++++++++++++++ test/scripts/pykdtest.py | 4 +++- test/targetapp/targetapp.vcproj | 4 ++++ 3 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 test/scripts/mspdbtest.py diff --git a/test/scripts/mspdbtest.py b/test/scripts/mspdbtest.py new file mode 100644 index 0000000..c2f9e0f --- /dev/null +++ b/test/scripts/mspdbtest.py @@ -0,0 +1,28 @@ +"""Public microsoft symbols tests""" + +import unittest +import pykd +import os + +class PeFileAsDumpLoader: + """Load/unload PE-file from System as crash dump file""" + def __init__(self, fileName): + self._fileName = fileName + self._loaded = False + + def __enter__(self): + pykd.loadDump(self._fileName) + self._loaded = True + + def __exit__(self, exc_type, exc_value, exc_tb): + if self._loaded: + pykd.detachProcess() + self._loaded = False + +class MsPdbTest(unittest.TestCase): + """Public Microsoft symbols tests""" + + def testFindMethodOffset(self): + """Lookup method offset by name""" + with PeFileAsDumpLoader( os.environ["WINDIR"] + r"\System32\ole32.dll" ) as loadedDump: + self.assertNotEqual( 0, pykd.getOffset("ole32!CPackagerMoniker::AddRef") ) diff --git a/test/scripts/pykdtest.py b/test/scripts/pykdtest.py index 37401b2..66854d4 100644 --- a/test/scripts/pykdtest.py +++ b/test/scripts/pykdtest.py @@ -16,9 +16,10 @@ import target import intbase import memtest import moduletest -import typeinfo +import typeinfo import typedvar import regtest +import mspdbtest import localstest import customtypestest import ehexcepttest @@ -53,6 +54,7 @@ def getTestSuite( singleName = "" ): # ^^^ unittest.TestLoader().loadTestsFromTestCase( TerminateProcessTest ), + unittest.TestLoader().loadTestsFromTestCase( mspdbtest.MsPdbTest ), unittest.TestLoader().loadTestsFromTestCase( localstest.LocalVarsTest ), unittest.TestLoader().loadTestsFromTestCase( ehexcepttest.EhExceptionTest ), unittest.TestLoader().loadTestsFromTestCase( ehstatustest.EhStatusTest ), diff --git a/test/targetapp/targetapp.vcproj b/test/targetapp/targetapp.vcproj index e386e60..20e829b 100644 --- a/test/targetapp/targetapp.vcproj +++ b/test/targetapp/targetapp.vcproj @@ -609,6 +609,10 @@ RelativePath="..\scripts\moduletest.py" > + +