# # # import sys import os import unittest # Dynamically append current pykd.pyd path to PYTHONPATH sys.path.insert(0, os.path.dirname(sys.argv[1])) import pykd import target import basetest import typeinfo import regtest import moduletest import diatest import dbgcmd import clienttest import eventtest import typedvar import memtest import intbase import synsymtest import ehloadtest import thrdctxtest import localstest import ehexcepttest def getTestSuite( singleName = "" ): if singleName == "": return unittest.TestSuite( [ unittest.TestLoader().loadTestsFromTestCase( basetest.BaseTest ), unittest.TestLoader().loadTestsFromTestCase( moduletest.ModuleTest ), unittest.TestLoader().loadTestsFromTestCase( diatest.DiaTest ), unittest.TestLoader().loadTestsFromTestCase( typeinfo.TypeInfoTest ), unittest.TestLoader().loadTestsFromTestCase( typedvar.TypedVarTest ), unittest.TestLoader().loadTestsFromTestCase( dbgcmd.DbgcmdTest ), unittest.TestLoader().loadTestsFromTestCase( clienttest.DbgClientTest ), unittest.TestLoader().loadTestsFromTestCase( eventtest.EventTest ), unittest.TestLoader().loadTestsFromTestCase( memtest.MemoryTest ), unittest.TestLoader().loadTestsFromTestCase( intbase.IntBaseTest ), unittest.TestLoader().loadTestsFromTestCase( synsymtest.SynSymTest ), unittest.TestLoader().loadTestsFromTestCase( thrdctxtest.ThreadContextTest ), unittest.TestLoader().loadTestsFromTestCase( ehloadtest.EhLoadTest ), unittest.TestLoader().loadTestsFromTestCase( localstest.LocalVarsTest ), unittest.TestLoader().loadTestsFromTestCase( ehexcepttest.EhExceptionBreakpointTest ), unittest.TestLoader().loadTestsFromTestCase( regtest.CpuRegTest ), ] ) else: return unittest.TestSuite( unittest.TestLoader().loadTestsFromName( singleName ) ) if __name__ == "__main__": print "\nTesting PyKd ver. " + pykd.version target.appPath = sys.argv[1] target.moduleName = os.path.splitext(os.path.basename(target.appPath))[0] print "Test module: %s" % target.appPath pykd.startProcess( target.appPath ) target.module = pykd.loadModule( target.moduleName ) target.module.reload(); pykd.go() print "" suite = getTestSuite() #suite = getTestSuite( "diatest.DiaTest.testFind" ) #suite = getTestSuite( "typedvar.TypedVarTest.testTypeVarArg" ) #suite = getTestSuite( "typeinfo.TypeInfoTest.testCreateByName" ) #suite = getTestSuite( "typedvar.TypedVarTest.testBitField" ) unittest.TextTestRunner(stream=sys.stdout, verbosity=2).run( suite ) raw_input("\npress return\n")