35 lines
1.1 KiB
Python
35 lines
1.1 KiB
Python
"""
|
|
A test for the curiously recurring template pattern (or CRTP).
|
|
|
|
Note that the derived class is referenced directly from the parent class in the
|
|
test. If this fails then there is a good chance that LLDB tried to eagerly
|
|
resolve the definition of the derived class while constructing the base 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()
|
|
|
|
# Try using the class in the expression evaluator.
|
|
self.expect_expr(
|
|
"derived",
|
|
result_type="Derived",
|
|
result_children=[
|
|
ValueCheck(name="Base<Derived>"),
|
|
ValueCheck(name="member", value="0"),
|
|
],
|
|
)
|
|
|
|
# Try accessing the members of the class and base class.
|
|
self.expect_expr("derived.pointer", result_type="Derived *")
|
|
self.expect_expr("derived.member", result_type="int", result_value="0")
|