From 2a6cadd3d27a3ee972d18f244634a66d2d0921ae Mon Sep 17 00:00:00 2001 From: "SND\\kernelnet_cp" Date: Tue, 3 Mar 2015 08:05:50 +0000 Subject: [PATCH] [0.3.x] added : test onModuleLoad git-svn-id: https://pykd.svn.codeplex.com/svn@89806 9b283d60-5439-405e-af05-b73fd8c4d996 --- test/scripts/ehloadtest.py | 26 ++++++++++++++++---------- test/scripts/pykdtest.py | 8 ++++++-- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/test/scripts/ehloadtest.py b/test/scripts/ehloadtest.py index 437cc86..a93da37 100644 --- a/test/scripts/ehloadtest.py +++ b/test/scripts/ehloadtest.py @@ -16,7 +16,7 @@ class ModuleLoadHandler(pykd.eventHandler): self.wasLoad = 0 self.wasUnload = False - def onLoadModule(self, module): + def onModuleLoad(self, module): """Load module handler""" if ( fnmatch.fnmatch(module.name().lower(), self.moduleMask) ): @@ -24,7 +24,7 @@ class ModuleLoadHandler(pykd.eventHandler): return pykd.DEBUG_STATUS_NO_CHANGE - def onUnloadModule(self, modBase): + def onModuleUnload(self, modBase): """Unload module handler""" if ( self.wasLoad and (self.wasLoad == modBase) ): @@ -37,15 +37,21 @@ class EhLoadTest(unittest.TestCase): def testLoadUnload(self): """Start new process and track loading and unloading modules""" - pykd.startProcess(target.appPath + " -testLoadUnload") + pykd.startProcess(target.appPath + " loadunloadmodule") with testutils.ContextCallIt( pykd.killProcess ) as contextCallIt: - modLoadHandler = ModuleLoadHandler( "*Iphlpapi*" ) - with testutils.ContextCallIt( getattr(modLoadHandler, "reset") ) as resetEventHandler: - try: - while True: - pykd.go() - except pykd.WaitEventException: - pass + + pykd.go() # skip initail break + + modLoadHandler = ModuleLoadHandler( "ws2_32*" ) + + pykd.go() + + #with testutils.ContextCallIt( getattr(modLoadHandler, "reset") ) as resetEventHandler: + # try: + # while True: + # pykd.go() + # except pykd.WaitEventException: + # pass self.assertTrue(modLoadHandler.wasLoad) self.assertTrue(modLoadHandler.wasUnload) diff --git a/test/scripts/pykdtest.py b/test/scripts/pykdtest.py index 54d3d82..a53d91e 100644 --- a/test/scripts/pykdtest.py +++ b/test/scripts/pykdtest.py @@ -9,6 +9,8 @@ import unittest # Dynamically append current pykd.pyd path to PYTHONPATH sys.path.insert(0, os.path.dirname(sys.argv[1])) +print os.path.abspath(os.curdir) + import pykd import target @@ -25,6 +27,7 @@ import customtypestest import mspdbtest import excepttest import targetprocess +import ehloadtest pykd.initialize() @@ -61,6 +64,7 @@ def getTestSuite( singleName = "" ): unittest.TestLoader().loadTestsFromTestCase( stacktest.StackTest ), unittest.TestLoader().loadTestsFromTestCase( mspdbtest.MsPdbTest ), unittest.TestLoader().loadTestsFromTestCase( targetprocess.ProcessTest ), + unittest.TestLoader().loadTestsFromTestCase( ehloadtest.EhLoadTest ), #unittest.TestLoader().loadTestsFromTestCase( excepttest.ExceptionTest ), ] ) @@ -74,12 +78,12 @@ def getTestSuite( singleName = "" ): if __name__ == "__main__": - print "\nTesting PyKd ver. " + pykd.__version__ + print "\nTesting PyKd ver.", pykd.__version__, "File:", os.path.dirname(pykd.__file__) target.appPath = sys.argv[1] target.moduleName = os.path.splitext(os.path.basename(target.appPath))[0] unittest.TextTestRunner(stream=sys.stdout, verbosity=2).run( getTestSuite() ) - # raw_input("Press ...") + #raw_input("Press ...")