pykd/test/scripts/synsymtest.py

43 lines
1.4 KiB
Python
Raw Normal View History

"""Synthetic symbols tests"""
import unittest
import target
import pykd
class SynSymTest(unittest.TestCase):
"""Unit tests of synthetic symbols"""
def testAdd(self):
"""Add new synthetic symbol"""
_addr = target.module.offset("FuncTestClass::staticMethod") - 1
pykd.addSyntheticSymbol(_addr, 1, "synSym1")
self.assertEqual(target.module.synSym1, _addr)
self.assertRaises( pykd.DbgException, pykd.addSyntheticSymbol, _addr, 1, "synSym1" )
def testDel(self):
"""Remove synthetic symbol"""
_addr = target.module.offset("FuncTestClass::staticMethod") - 2
_synsym = pykd.addSyntheticSymbol(_addr, 1, "synSym2")
self.assertEqual(target.module.synSym2, _addr)
pykd.removeSyntheticSymbol(_synsym)
self.assertRaises( pykd.DbgException, target.module.offset, "synSym2" )
self.assertRaises( pykd.DbgException, pykd.removeSyntheticSymbol, _synsym )
def testModule(self):
"""Add and remove synthetic module"""
base = 64 * 1024
pykd.addSyntheticModule(base, 1024, "artificial_module1")
pykd.addSyntheticModule(base + 1024, 1024, "artificial_module2", "artificial_module2_path")
pykd.removeSyntheticSymbol( pykd.addSyntheticSymbol(base, 1, "artificial_symbol") )
pykd.removeSyntheticModule(base + 1024)
pykd.removeSyntheticModule(base)