2013-05-13 20:03:35 +08:00
|
|
|
"""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"""
|
2015-04-24 17:50:50 +08:00
|
|
|
_addr = target.module.offset("FuncTestClass::staticMethod") - 1
|
2013-05-13 20:03:35 +08:00
|
|
|
|
2015-04-24 17:50:50 +08:00
|
|
|
pykd.addSyntheticSymbol(_addr, 1, "synSym1")
|
|
|
|
self.assertEqual(target.module.synSym1, _addr)
|
2013-05-13 20:03:35 +08:00
|
|
|
|
2015-04-24 17:50:50 +08:00
|
|
|
self.assertRaises( pykd.DbgException, pykd.addSyntheticSymbol, _addr, 1, "synSym1" )
|
2013-05-13 20:03:35 +08:00
|
|
|
|
2015-04-24 17:50:50 +08:00
|
|
|
def testDel(self):
|
|
|
|
"""Remove synthetic symbol"""
|
|
|
|
_addr = target.module.offset("FuncTestClass::staticMethod") - 2
|
2013-05-13 20:03:35 +08:00
|
|
|
|
2015-04-24 17:50:50 +08:00
|
|
|
_synsym = pykd.addSyntheticSymbol(_addr, 1, "synSym2")
|
|
|
|
self.assertEqual(target.module.synSym2, _addr)
|
2013-05-13 20:03:35 +08:00
|
|
|
|
2015-04-24 17:50:50 +08:00
|
|
|
pykd.removeSyntheticSymbol(_synsym)
|
2013-05-13 20:03:35 +08:00
|
|
|
|
2015-04-24 17:50:50 +08:00
|
|
|
self.assertRaises( pykd.DbgException, target.module.offset, "synSym2" )
|
2013-05-13 20:03:35 +08:00
|
|
|
|
2015-04-24 17:50:50 +08:00
|
|
|
self.assertRaises( pykd.DbgException, pykd.removeSyntheticSymbol, _synsym )
|