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