| import lldb | |
| from lldbsuite.test.lldbtest import * | |
| from lldbsuite.test.decorators import * | |
| from lldbsuite.test import lldbutil | |
| class TestCase(TestBase): | |
| def test(self): | |
| self.build() | |
| _, process, _, _ = lldbutil.run_to_source_breakpoint( | |
| self, "break here", lldb.SBFileSpec("main.c") | |
| ) | |
| self.runCmd("command script import thing_formatter.py") | |
| frame = process.selected_thread.selected_frame | |
| x = frame.var("x") | |
| names = ("zero", "one") | |
| for i in range(x.num_children): | |
| idx = x.GetIndexOfChildWithName(f"[{i}]") | |
| self.assertEqual(idx, i) | |
| child = x.GetChildAtIndex(idx) | |
| self.assertEqual(child.name, names[idx]) | |
| idx = x.GetIndexOfChildWithName(f"[{x.num_children + 1}]") | |
| self.assertEqual(idx, lldb.UINT32_MAX) |