[0.3.x] restored tests of synthetic symbols

git-svn-id: https://pykd.svn.codeplex.com/svn@90487 9b283d60-5439-405e-af05-b73fd8c4d996
This commit is contained in:
SND\EreTIk_cp 2015-04-24 09:50:50 +00:00 committed by Mikhail I. Izmestev
parent b8828155e0
commit 4caa408721
3 changed files with 25 additions and 74 deletions

View File

@ -18,7 +18,7 @@ BOOL APIENTRY DllMain( HMODULE hModule,
break; break;
case DLL_PROCESS_DETACH: case DLL_PROCESS_DETACH:
int a; volatile int a;
a = 10; a = 10;
break; break;
} }

View File

@ -26,6 +26,7 @@ import mspdbtest
import excepttest import excepttest
import targetprocess import targetprocess
import ehloadtest import ehloadtest
import synsymtest
pykd.initialize() pykd.initialize()
@ -55,6 +56,7 @@ def getTestSuite( singleName = "" ):
unittest.TestLoader().loadTestsFromTestCase( typedvar.TypedVarTest ), unittest.TestLoader().loadTestsFromTestCase( typedvar.TypedVarTest ),
#unittest.TestLoader().loadTestsFromTestCase( regtest.CpuRegTest ), #unittest.TestLoader().loadTestsFromTestCase( regtest.CpuRegTest ),
unittest.TestLoader().loadTestsFromTestCase( customtypestest.CustomTypesTest ), unittest.TestLoader().loadTestsFromTestCase( customtypestest.CustomTypesTest ),
unittest.TestLoader().loadTestsFromTestCase( synsymtest.SynSymTest ),
# ^^^ # ^^^
unittest.TestLoader().loadTestsFromTestCase( TerminateProcessTest ), unittest.TestLoader().loadTestsFromTestCase( TerminateProcessTest ),

View File

@ -9,73 +9,22 @@ class SynSymTest(unittest.TestCase):
def testAdd(self): def testAdd(self):
"""Add new synthetic symbol""" """Add new synthetic symbol"""
pykd.addSynSymbol( _addr = target.module.offset("FuncTestClass::staticMethod") - 1
target.module.offset("FuncWithName0")-1, 1, "synSym1")
self.assertEqual( pykd.addSyntheticSymbol(_addr, 1, "synSym1")
target.module.offset("FuncWithName0")-1, self.assertEqual(target.module.synSym1, _addr)
target.module.offset("synSym1"))
self.assertRaises( pykd.DbgException, pykd.addSyntheticSymbol, _addr, 1, "synSym1" )
def testDel(self): def testDel(self):
"""Remove synthetic symbol""" """Remove synthetic symbol"""
pykd.addSynSymbol( _addr = target.module.offset("FuncTestClass::staticMethod") - 2
target.module.offset("FuncWithName0")-2, 1, "synSym2")
self.assertEqual(
pykd.delSynSymbol( target.module.offset("synSym2") ), 1 )
exceptionOccurred = True _synsym = pykd.addSyntheticSymbol(_addr, 1, "synSym2")
try: self.assertEqual(target.module.synSym2, _addr)
target.module.rva("synSym2")
exceptionOccurred = False
except pykd.BaseException:
pass
self.assertTrue(exceptionOccurred)
def testDelAll(self): pykd.removeSyntheticSymbol(_synsym)
"""Remove all synthetic symbols"""
pykd.addSynSymbol(
target.module.offset("FuncWithName0")-3, 1, "synSym3")
pykd.delAllSynSymbols()
exceptionOccurred = True self.assertRaises( pykd.DbgException, target.module.offset, "synSym2" )
try:
target.module.rva("synSym3")
exceptionOccurred = False
except pykd.BaseException:
pass
self.assertTrue(exceptionOccurred)
def testDelByMask(self): self.assertRaises( pykd.DbgException, pykd.removeSyntheticSymbol, _synsym )
"""Remove synthetic symbol by mask"""
pykd.addSynSymbol(
target.module.offset("FuncWithName0")-4, 1, "synSym4")
self.assertTrue( pykd.delSynSymbolsMask( "*", "synSym4" ) >= 1 )
exceptionOccurred = True
try:
target.module.rva("synSym4")
exceptionOccurred = False
except pykd.BaseException:
pass
self.assertTrue(exceptionOccurred)
def testReload(self):
"""Restore synthetic symbols after reload module symbols"""
pykd.addSynSymbol(
target.module.offset("FuncWithName0")-5, 1, "synSym5")
target.module.reload()
self.assertEqual(
target.module.offset("FuncWithName0")-5,
target.module.offset("synSym5"))
def testAddSynSymbolException(self):
"""Test of AddSynSymbolException"""
pykd.addSynSymbol(
target.module.offset("FuncWithName0")-6, 1, "synSym6")
exceptionOccurred = False
try:
pykd.addSynSymbol(
target.module.offset("FuncWithName0")-6, 1, "synSym7")
except pykd.AddSynSymbolException:
exceptionOccurred = True
self.assertTrue(exceptionOccurred)