| """ |
| Tests loading of classes when the loading is triggered via a typedef inside the |
| class (and not via the normal LLDB lookup that first resolves the surrounding |
| class). |
| """ |
| |
| import lldb |
| from lldbsuite.test.decorators import * |
| from lldbsuite.test.lldbtest import * |
| from lldbsuite.test import lldbutil |
| |
| |
| class TestCase(TestBase): |
| @no_debug_info_test |
| def test(self): |
| self.build() |
| self.createTestTarget() |
| |
| # Print the top-level typedef which triggers the loading of the class |
| # that the typedef is defined inside. |
| self.expect_expr( |
| "pull_in_classes", |
| result_type="StructWithMember::MemberTypedef", |
| result_value="0", |
| ) |
| |
| # Print the classes and check their types. |
| self.expect_expr( |
| "struct_to_print", |
| result_type="StructWithMember", |
| result_children=[ |
| ValueCheck( |
| name="m", |
| type="StructWithNested::Nested<int>::OtherTypedef", |
| children=[ValueCheck(name="i", value="0", type="int")], |
| ) |
| ], |
| ) |