diff --git a/gdb-port/tests/unit/ast.py b/gdb-port/tests/unit/ast.py index bd2c0d4a411c0b6e07ae5770d47944df20b61aa8..8e9d771b9d3884fabb11f6e9d207f6597ab993d3 100644 --- a/gdb-port/tests/unit/ast.py +++ b/gdb-port/tests/unit/ast.py @@ -122,6 +122,15 @@ class HParseResultTests(unittest.TestCase): #class HParsedTokenCreation(unittest.TestCase): +class HCountedArrayCreation(unittest.TestCase): + #TODO: read_member return value should be mock gdb.Value + @unittest.mock.patch.object(HCountedArray, 'read_member', return_value=0xdeadbccc) + @unittest.mock.patch('gdb.Value', autospec=True) + def test_hca_creation(self, gdbv_mock, hca_readmember_mock): + hca = HCountedArray(0xdeadbeef) + self.assertEqual(hca.address, 0xdeadbeef) + self.assertEqual(hca_readmember_mock.mock_calls, [unittest.mock.call('capacity'), unittest.mock.call('used'), unittest.mock.call('arena'), unittest.mock.call('elements')]) + class ASTManagerSetTopNode(unittest.TestCase): def setUp(self): self.hpr_patcher = unittest.mock.patch('__main__.HParseResult', autospec=True) @@ -139,6 +148,7 @@ class ASTManagerSetTopNode(unittest.TestCase): ast_manager.set_top_node(0xdeadbeef, p) # This assert is not too specific, but testing the calls to HParseResult() covers checking that HParseResult() is initialized with the right address + # TODO: this can probably be improved with a sentinel self.assertIsNotNone(ast_manager.top_node) self.assertEqual(ast_manager.parser, p) self.assertEqual(self.hpr_mock_object.mock_calls, [unittest.mock.call(0xdeadbeef)])