973eade3e56a63ebba2d3f1c52b480bcf6710998
[openbsd] /
1 """
2 Test that nested persistent types work.
3 """
4
5
6
7 import lldb
8 from lldbsuite.test.decorators import *
9 from lldbsuite.test.lldbtest import *
10 from lldbsuite.test import lldbutil
11
12
13 class NestedPersistentTypesTestCase(TestBase):
14
15     mydir = TestBase.compute_mydir(__file__)
16
17     def test_persistent_types(self):
18         """Test that nested persistent types work."""
19         self.build()
20
21         self.runCmd("file " + self.getBuildArtifact("a.out"), CURRENT_EXECUTABLE_SET)
22
23         self.runCmd("breakpoint set --name main")
24
25         self.runCmd("run", RUN_SUCCEEDED)
26
27         self.runCmd("expression struct $foo { int a; int b; };")
28
29         self.runCmd(
30             "expression struct $bar { struct $foo start; struct $foo end; };")
31
32         self.runCmd("expression struct $bar $my_bar = {{ 2, 3 }, { 4, 5 }};")
33
34         self.expect("expression $my_bar",
35                     substrs=['a = 2', 'b = 3', 'a = 4', 'b = 5'])
36
37         self.expect("expression $my_bar.start.b",
38                     substrs=['(int)', '3'])
39
40         self.expect("expression $my_bar.end.b",
41                     substrs=['(int)', '5'])