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" > </File> + <File + RelativePath="..\scripts\mspdbtest.py" + > + </File> <File RelativePath="..\scripts\pykdtest.py" >