From dd52963577c188d6f46b5f0bcc2d13bd99a8129c Mon Sep 17 00:00:00 2001 From: pompolic <pompolic@special-circumstanc.es> Date: Mon, 25 Apr 2022 22:40:01 +0200 Subject: [PATCH] More tests --- gdb-port/tests/unit/breakpoint-manager.py | 24 +++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gdb-port/tests/unit/breakpoint-manager.py b/gdb-port/tests/unit/breakpoint-manager.py index 569a6d7..f7fb3da 100644 --- a/gdb-port/tests/unit/breakpoint-manager.py +++ b/gdb-port/tests/unit/breakpoint-manager.py @@ -41,12 +41,25 @@ class BreakpointManagerSettingBreakpoints(unittest.TestCase): self.ipbp_patcher = unittest.mock.patch('__main__.InitParserBreakpoint') self.ipbp_mock_object = self.ipbp_patcher.start() + self.hdpbp_patcher = unittest.mock.patch('__main__.HDoParseBreakpoint') + self.hdpbp_mock_object = self.hdpbp_patcher.start() + self.hppbp_patcher = unittest.mock.patch('__main__.HPackratParseBreakpoint') + self.hppbp_mock_object = self.hppbp_patcher.start() + self.pllpbp_patcher = unittest.mock.patch('__main__.PerformLowLevelParseBreakpoint') + self.pllpbp_mock_object = self.pllpbp_patcher.start() + self.hamrbp_patcher = unittest.mock.patch('__main__.HArenaMallocRawBreakpoint') + self.hamrbp_mock_object = self.hamrbp_patcher.start() + def tearDown(self): self.hpprbp_patcher.stop() self.plprbp_patcher.stop() self.hrbp_patcher.stop() self.pvbp_patcher.stop() self.ipbp_patcher.stop() + self.hdpbp_patcher.stop() + self.hppbp_patcher.stop() + self.pllpbp_patcher.stop() + self.hamrbp_patcher.stop() # TODO: mock breakpoints, assert on arguments to constructor def test_set_h_rule_breakpoints(self): @@ -125,6 +138,17 @@ class BreakpointManagerSettingBreakpoints(unittest.TestCase): instr = self.arch.disassemble(bp_addr, bp_addr+8, 1)[0] self.assertTrue(instr['asm'].startswith('ret')) + def test_del_init_parser_breakpoints(self): + self.bpm.set_init_parser_breakpoint() + self.bpm.del_init_parser_breakpoint() + self.assertTrue(self.bpm.init_parser_retq.mock_calls == [unittest.mock.call.delete()]) + + def test_set_hammer_breakpoints(self): + self.bpm.set_hammer_breakpoints() + bps = [self.hdpbp_mock_object, self.hppbp_mock_object, self.pllpbp_mock_object, self.hamrbp_mock_object] + for i in range(0, len(bps)): + with self.subTest(i=i): + self.assertTrue(bps[i].called) # TODO #def tearDown(self): #self.bpm.delete -- GitLab