| import lldb | |
| from lldbsuite.test.decorators import * | |
| from lldbsuite.test.lldbtest import * | |
| from lldbsuite.test import lldbutil | |
| class TestCase(TestBase): | |
| NO_DEBUG_INFO_TESTCASE = True | |
| def run_class_tests(self): | |
| # Expression not referencing context class. | |
| self.expect_expr("1 + 1", result_type="int", result_value="2") | |
| # Referencing context class. | |
| self.expect_expr("member", result_type="const int", result_value="3") | |
| # Check the type of context class. | |
| self.expect_expr("this", result_type="const ContextClass *") | |
| def test_member_func(self): | |
| self.build() | |
| lldbutil.run_to_source_breakpoint( | |
| self, "// break in function in class.", lldb.SBFileSpec("main.cpp") | |
| ) | |
| self.run_class_tests() | |
| def test_templated_member_func(self): | |
| self.build() | |
| lldbutil.run_to_source_breakpoint( | |
| self, | |
| "// break in templated function in class.", | |
| lldb.SBFileSpec("main.cpp"), | |
| ) | |
| self.run_class_tests() | |
| def run_template_class_tests(self): | |
| # Expression not referencing context class. | |
| self.expect_expr("1 + 1", result_type="int", result_value="2") | |
| # Referencing context class. | |
| self.expect_expr("member", result_type="const int", result_value="4") | |
| # Check the type of context class. | |
| self.expect_expr("this", result_type="const TemplatedContextClass<int> *") | |
| def test_template_member_func(self): | |
| self.build() | |
| lldbutil.run_to_source_breakpoint( | |
| self, | |
| "// break in function in templated class.", | |
| lldb.SBFileSpec("main.cpp"), | |
| ) | |
| self.run_template_class_tests() | |
| def test_template_templated_member_func(self): | |
| self.build() | |
| lldbutil.run_to_source_breakpoint( | |
| self, | |
| "// break in templated function in templated class.", | |
| lldb.SBFileSpec("main.cpp"), | |
| ) | |
| self.run_template_class_tests() |