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"
>
+
+