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