199451b44SJordan Rupprecht"""
299451b44SJordan RupprechtTest lldb data formatter subsystem.
399451b44SJordan Rupprecht"""
499451b44SJordan Rupprecht
599451b44SJordan Rupprecht
699451b44SJordan Rupprechtimport lldb
799451b44SJordan Rupprechtfrom lldbsuite.test.decorators import *
899451b44SJordan Rupprechtfrom lldbsuite.test.lldbtest import *
999451b44SJordan Rupprechtfrom lldbsuite.test import lldbutil
1099451b44SJordan Rupprecht
1199451b44SJordan Rupprecht
1299451b44SJordan Rupprechtclass SmartArrayDataFormatterTestCase(TestBase):
1399451b44SJordan Rupprecht    def test_with_run_command(self):
1499451b44SJordan Rupprecht        """Test data formatter commands."""
1599451b44SJordan Rupprecht        self.build()
1699451b44SJordan Rupprecht        self.data_formatter_commands()
1799451b44SJordan Rupprecht
1899451b44SJordan Rupprecht    def setUp(self):
1999451b44SJordan Rupprecht        # Call super's setUp().
2099451b44SJordan Rupprecht        TestBase.setUp(self)
2199451b44SJordan Rupprecht        # Find the line number to break at.
22*2238dcc3SJonas Devlieghere        self.line = line_number("main.cpp", "// Set break point at this line.")
2399451b44SJordan Rupprecht
2499451b44SJordan Rupprecht    def data_formatter_commands(self):
2599451b44SJordan Rupprecht        """Test that that file and class static variables display correctly."""
2699451b44SJordan Rupprecht        self.runCmd("file " + self.getBuildArtifact("a.out"), CURRENT_EXECUTABLE_SET)
2799451b44SJordan Rupprecht
2899451b44SJordan Rupprecht        lldbutil.run_break_set_by_file_and_line(
29*2238dcc3SJonas Devlieghere            self, "main.cpp", self.line, num_expected_locations=1, loc_exact=True
30*2238dcc3SJonas Devlieghere        )
3199451b44SJordan Rupprecht
3299451b44SJordan Rupprecht        self.runCmd("run", RUN_SUCCEEDED)
3399451b44SJordan Rupprecht
3499451b44SJordan Rupprecht        process = self.dbg.GetSelectedTarget().GetProcess()
3599451b44SJordan Rupprecht
3699451b44SJordan Rupprecht        # The stop reason of the thread should be breakpoint.
37*2238dcc3SJonas Devlieghere        self.expect(
38*2238dcc3SJonas Devlieghere            "thread list",
39*2238dcc3SJonas Devlieghere            STOPPED_DUE_TO_BREAKPOINT,
40*2238dcc3SJonas Devlieghere            substrs=["stopped", "stop reason = breakpoint"],
41*2238dcc3SJonas Devlieghere        )
4299451b44SJordan Rupprecht
4399451b44SJordan Rupprecht        # This is the function to remove the custom formats in order to have a
4499451b44SJordan Rupprecht        # clean slate for the next test case.
4599451b44SJordan Rupprecht        def cleanup():
46*2238dcc3SJonas Devlieghere            self.runCmd("type format clear", check=False)
47*2238dcc3SJonas Devlieghere            self.runCmd("type summary clear", check=False)
4899451b44SJordan Rupprecht
4999451b44SJordan Rupprecht        # Execute the cleanup function during test case tear down.
5099451b44SJordan Rupprecht        self.addTearDownHook(cleanup)
5199451b44SJordan Rupprecht
5299451b44SJordan Rupprecht        # check that we are not looping here
53*2238dcc3SJonas Devlieghere        self.runCmd('type summary add --summary-string "${var%V}" SomeData')
5499451b44SJordan Rupprecht
55*2238dcc3SJonas Devlieghere        self.expect("frame variable data", substrs=["SomeData @ 0x"])
5699451b44SJordan Rupprecht        # ${var%s}
57*2238dcc3SJonas Devlieghere        self.runCmd('type summary add --summary-string "ptr = ${var%s}" "char *"')
5899451b44SJordan Rupprecht
59*2238dcc3SJonas Devlieghere        self.expect("frame variable strptr", substrs=['ptr = "', "Hello world!"])
6099451b44SJordan Rupprecht
61*2238dcc3SJonas Devlieghere        self.expect(
62*2238dcc3SJonas Devlieghere            "frame variable other.strptr", substrs=['ptr = "', "Nested Hello world!"]
63*2238dcc3SJonas Devlieghere        )
6499451b44SJordan Rupprecht
6599451b44SJordan Rupprecht        self.runCmd(
66*2238dcc3SJonas Devlieghere            'type summary add --summary-string "arr = ${var%s}" -x "char\\[[0-9]+\\]"'
67*2238dcc3SJonas Devlieghere        )
6899451b44SJordan Rupprecht
69*2238dcc3SJonas Devlieghere        self.expect("frame variable strarr", substrs=['arr = "', "Hello world!"])
7099451b44SJordan Rupprecht
71*2238dcc3SJonas Devlieghere        self.expect(
72*2238dcc3SJonas Devlieghere            "frame variable other.strarr", substrs=['arr = "', "Nested Hello world!"]
73*2238dcc3SJonas Devlieghere        )
7499451b44SJordan Rupprecht
75*2238dcc3SJonas Devlieghere        self.expect("expression strarr", substrs=['arr = "', "Hello world!"])
7699451b44SJordan Rupprecht
77*2238dcc3SJonas Devlieghere        self.expect(
78*2238dcc3SJonas Devlieghere            "expression other.strarr", substrs=['arr = "', "Nested Hello world!"]
79*2238dcc3SJonas Devlieghere        )
8099451b44SJordan Rupprecht
8199451b44SJordan Rupprecht        # ${var%c}
82*2238dcc3SJonas Devlieghere        self.runCmd('type summary add --summary-string "ptr = ${var%c}" "char *"')
8399451b44SJordan Rupprecht
84*2238dcc3SJonas Devlieghere        self.expect("frame variable strptr", substrs=['ptr = "', "Hello world!"])
8599451b44SJordan Rupprecht
86*2238dcc3SJonas Devlieghere        self.expect(
87*2238dcc3SJonas Devlieghere            "frame variable other.strptr", substrs=['ptr = "', "Nested Hello world!"]
88*2238dcc3SJonas Devlieghere        )
8999451b44SJordan Rupprecht
90*2238dcc3SJonas Devlieghere        self.expect("expression strptr", substrs=['ptr = "', "Hello world!"])
9199451b44SJordan Rupprecht
92*2238dcc3SJonas Devlieghere        self.expect(
93*2238dcc3SJonas Devlieghere            "expression other.strptr", substrs=['ptr = "', "Nested Hello world!"]
94*2238dcc3SJonas Devlieghere        )
9599451b44SJordan Rupprecht
9699451b44SJordan Rupprecht        self.runCmd(
97*2238dcc3SJonas Devlieghere            'type summary add --summary-string "arr = ${var%c}" -x "char\\[[0-9]+\\]"'
98*2238dcc3SJonas Devlieghere        )
9999451b44SJordan Rupprecht
100*2238dcc3SJonas Devlieghere        self.expect("frame variable strarr", substrs=['arr = "', "Hello world!"])
10199451b44SJordan Rupprecht
102*2238dcc3SJonas Devlieghere        self.expect(
103*2238dcc3SJonas Devlieghere            "frame variable other.strarr", substrs=['arr = "', "Nested Hello world!"]
104*2238dcc3SJonas Devlieghere        )
10599451b44SJordan Rupprecht
106*2238dcc3SJonas Devlieghere        self.expect("expression strarr", substrs=['arr = "', "Hello world!"])
10799451b44SJordan Rupprecht
108*2238dcc3SJonas Devlieghere        self.expect(
109*2238dcc3SJonas Devlieghere            "expression other.strarr", substrs=['arr = "', "Nested Hello world!"]
110*2238dcc3SJonas Devlieghere        )
11199451b44SJordan Rupprecht
11299451b44SJordan Rupprecht        # ${var%char[]}
11399451b44SJordan Rupprecht        self.runCmd(
114*2238dcc3SJonas Devlieghere            'type summary add --summary-string "arr = ${var%char[]}" -x "char\\[[0-9]+\\]"'
115*2238dcc3SJonas Devlieghere        )
11699451b44SJordan Rupprecht
117*2238dcc3SJonas Devlieghere        self.expect("frame variable strarr", substrs=['arr = "', "Hello world!"])
11899451b44SJordan Rupprecht
119*2238dcc3SJonas Devlieghere        self.expect(
120*2238dcc3SJonas Devlieghere            "frame variable other.strarr", substrs=["arr = ", "Nested Hello world!"]
121*2238dcc3SJonas Devlieghere        )
12299451b44SJordan Rupprecht
123*2238dcc3SJonas Devlieghere        self.expect("expression strarr", substrs=['arr = "', "Hello world!"])
12499451b44SJordan Rupprecht
125*2238dcc3SJonas Devlieghere        self.expect(
126*2238dcc3SJonas Devlieghere            "expression other.strarr", substrs=["arr = ", "Nested Hello world!"]
127*2238dcc3SJonas Devlieghere        )
12899451b44SJordan Rupprecht
129*2238dcc3SJonas Devlieghere        self.runCmd('type summary add --summary-string "ptr = ${var%char[]}" "char *"')
13099451b44SJordan Rupprecht
131*2238dcc3SJonas Devlieghere        self.expect("frame variable strptr", substrs=['ptr = "', "Hello world!"])
13299451b44SJordan Rupprecht
133*2238dcc3SJonas Devlieghere        self.expect(
134*2238dcc3SJonas Devlieghere            "frame variable other.strptr", substrs=['ptr = "', "Nested Hello world!"]
135*2238dcc3SJonas Devlieghere        )
13699451b44SJordan Rupprecht
137*2238dcc3SJonas Devlieghere        self.expect("expression strptr", substrs=['ptr = "', "Hello world!"])
13899451b44SJordan Rupprecht
139*2238dcc3SJonas Devlieghere        self.expect(
140*2238dcc3SJonas Devlieghere            "expression other.strptr", substrs=['ptr = "', "Nested Hello world!"]
141*2238dcc3SJonas Devlieghere        )
14299451b44SJordan Rupprecht
14399451b44SJordan Rupprecht        # ${var%a}
14499451b44SJordan Rupprecht        self.runCmd(
145*2238dcc3SJonas Devlieghere            'type summary add --summary-string "arr = ${var%a}" -x "char\\[[0-9]+\\]"'
146*2238dcc3SJonas Devlieghere        )
14799451b44SJordan Rupprecht
148*2238dcc3SJonas Devlieghere        self.expect("frame variable strarr", substrs=['arr = "', "Hello world!"])
14999451b44SJordan Rupprecht
150*2238dcc3SJonas Devlieghere        self.expect(
151*2238dcc3SJonas Devlieghere            "frame variable other.strarr", substrs=["arr = ", "Nested Hello world!"]
152*2238dcc3SJonas Devlieghere        )
15399451b44SJordan Rupprecht
154*2238dcc3SJonas Devlieghere        self.expect("expression strarr", substrs=['arr = "', "Hello world!"])
15599451b44SJordan Rupprecht
156*2238dcc3SJonas Devlieghere        self.expect(
157*2238dcc3SJonas Devlieghere            "expression other.strarr", substrs=["arr = ", "Nested Hello world!"]
158*2238dcc3SJonas Devlieghere        )
159*2238dcc3SJonas Devlieghere
160*2238dcc3SJonas Devlieghere        self.runCmd('type summary add --summary-string "ptr = ${var%a}" "char *"')
161*2238dcc3SJonas Devlieghere
162*2238dcc3SJonas Devlieghere        self.expect("frame variable strptr", substrs=['ptr = "', "Hello world!"])
163*2238dcc3SJonas Devlieghere
164*2238dcc3SJonas Devlieghere        self.expect(
165*2238dcc3SJonas Devlieghere            "frame variable other.strptr", substrs=['ptr = "', "Nested Hello world!"]
166*2238dcc3SJonas Devlieghere        )
167*2238dcc3SJonas Devlieghere
168*2238dcc3SJonas Devlieghere        self.expect("expression strptr", substrs=['ptr = "', "Hello world!"])
169*2238dcc3SJonas Devlieghere
170*2238dcc3SJonas Devlieghere        self.expect(
171*2238dcc3SJonas Devlieghere            "expression other.strptr", substrs=['ptr = "', "Nested Hello world!"]
172*2238dcc3SJonas Devlieghere        )
17399451b44SJordan Rupprecht
17499451b44SJordan Rupprecht        self.runCmd(
175*2238dcc3SJonas Devlieghere            'type summary add --summary-string "ptr = ${var[]%char[]}" "char *"'
176*2238dcc3SJonas Devlieghere        )
17799451b44SJordan Rupprecht
17899451b44SJordan Rupprecht        # I do not know the size of the data, but you are asking for a full array slice..
17999451b44SJordan Rupprecht        # use the ${var%char[]} to obtain a string as result
180*2238dcc3SJonas Devlieghere        self.expect(
181*2238dcc3SJonas Devlieghere            "frame variable strptr", matching=False, substrs=['ptr = "', "Hello world!"]
182*2238dcc3SJonas Devlieghere        )
18399451b44SJordan Rupprecht
184*2238dcc3SJonas Devlieghere        self.expect(
185*2238dcc3SJonas Devlieghere            "frame variable other.strptr",
186*2238dcc3SJonas Devlieghere            matching=False,
187*2238dcc3SJonas Devlieghere            substrs=['ptr = "', "Nested Hello world!"],
188*2238dcc3SJonas Devlieghere        )
18999451b44SJordan Rupprecht
190*2238dcc3SJonas Devlieghere        self.expect(
191*2238dcc3SJonas Devlieghere            "expression strptr", matching=False, substrs=['ptr = "', "Hello world!"]
192*2238dcc3SJonas Devlieghere        )
19399451b44SJordan Rupprecht
194*2238dcc3SJonas Devlieghere        self.expect(
195*2238dcc3SJonas Devlieghere            "expression other.strptr",
196*2238dcc3SJonas Devlieghere            matching=False,
197*2238dcc3SJonas Devlieghere            substrs=['ptr = "', "Nested Hello world!"],
198*2238dcc3SJonas Devlieghere        )
19999451b44SJordan Rupprecht
20099451b44SJordan Rupprecht        # You asked an array-style printout...
20199451b44SJordan Rupprecht        self.runCmd(
202*2238dcc3SJonas Devlieghere            'type summary add --summary-string "ptr = ${var[0-1]%char[]}" "char *"'
203*2238dcc3SJonas Devlieghere        )
20499451b44SJordan Rupprecht
205*2238dcc3SJonas Devlieghere        self.expect("frame variable strptr", substrs=["ptr = ", "[{H},{e}]"])
20699451b44SJordan Rupprecht
207*2238dcc3SJonas Devlieghere        self.expect("frame variable other.strptr", substrs=["ptr = ", "[{N},{e}]"])
20899451b44SJordan Rupprecht
209*2238dcc3SJonas Devlieghere        self.expect("expression strptr", substrs=["ptr = ", "[{H},{e}]"])
21099451b44SJordan Rupprecht
211*2238dcc3SJonas Devlieghere        self.expect("expression other.strptr", substrs=["ptr = ", "[{N},{e}]"])
21299451b44SJordan Rupprecht
21399451b44SJordan Rupprecht        # using [] is required here
214*2238dcc3SJonas Devlieghere        self.runCmd('type summary add --summary-string "arr = ${var%x}" "int [5]"')
21599451b44SJordan Rupprecht
216*2238dcc3SJonas Devlieghere        self.expect(
217*2238dcc3SJonas Devlieghere            "frame variable intarr",
218*2238dcc3SJonas Devlieghere            matching=False,
219*2238dcc3SJonas Devlieghere            substrs=["0x00000001,0x00000001,0x00000002,0x00000003,0x00000005"],
220*2238dcc3SJonas Devlieghere        )
22199451b44SJordan Rupprecht
222*2238dcc3SJonas Devlieghere        self.expect(
223*2238dcc3SJonas Devlieghere            "frame variable other.intarr",
224*2238dcc3SJonas Devlieghere            matching=False,
225*2238dcc3SJonas Devlieghere            substrs=["0x00000009,0x00000008,0x00000007,0x00000006,0x00000005"],
226*2238dcc3SJonas Devlieghere        )
22799451b44SJordan Rupprecht
228*2238dcc3SJonas Devlieghere        self.runCmd('type summary add --summary-string "arr = ${var[]%x}" "int[5]"')
22999451b44SJordan Rupprecht
23099451b44SJordan Rupprecht        self.expect(
23199451b44SJordan Rupprecht            "frame variable intarr",
23299451b44SJordan Rupprecht            substrs=[
233*2238dcc3SJonas Devlieghere                "intarr = arr =",
234*2238dcc3SJonas Devlieghere                "0x00000001,0x00000001,0x00000002,0x00000003,0x00000005",
235*2238dcc3SJonas Devlieghere            ],
236*2238dcc3SJonas Devlieghere        )
23799451b44SJordan Rupprecht
23899451b44SJordan Rupprecht        self.expect(
23999451b44SJordan Rupprecht            "frame variable other.intarr",
24099451b44SJordan Rupprecht            substrs=[
241*2238dcc3SJonas Devlieghere                "intarr = arr =",
242*2238dcc3SJonas Devlieghere                "0x00000009,0x00000008,0x00000007,0x00000006,0x00000005",
243*2238dcc3SJonas Devlieghere            ],
244*2238dcc3SJonas Devlieghere        )
24599451b44SJordan Rupprecht
24699451b44SJordan Rupprecht        # printing each array item as an array
24799451b44SJordan Rupprecht        self.runCmd(
248*2238dcc3SJonas Devlieghere            'type summary add --summary-string "arr = ${var[]%uint32_t[]}" "int[5]"'
249*2238dcc3SJonas Devlieghere        )
25099451b44SJordan Rupprecht
25199451b44SJordan Rupprecht        self.expect(
25299451b44SJordan Rupprecht            "frame variable intarr",
25399451b44SJordan Rupprecht            substrs=[
254*2238dcc3SJonas Devlieghere                "intarr = arr =",
255*2238dcc3SJonas Devlieghere                "{0x00000001},{0x00000001},{0x00000002},{0x00000003},{0x00000005}",
256*2238dcc3SJonas Devlieghere            ],
257*2238dcc3SJonas Devlieghere        )
25899451b44SJordan Rupprecht
25999451b44SJordan Rupprecht        self.expect(
26099451b44SJordan Rupprecht            "frame variable other.intarr",
26199451b44SJordan Rupprecht            substrs=[
262*2238dcc3SJonas Devlieghere                "intarr = arr = ",
263*2238dcc3SJonas Devlieghere                "{0x00000009},{0x00000008},{0x00000007},{0x00000006},{0x00000005}",
264*2238dcc3SJonas Devlieghere            ],
265*2238dcc3SJonas Devlieghere        )
26699451b44SJordan Rupprecht
26799451b44SJordan Rupprecht        # printing full array as an array
26899451b44SJordan Rupprecht        self.runCmd(
269*2238dcc3SJonas Devlieghere            'type summary add --summary-string "arr = ${var%uint32_t[]}" "int[5]"'
270*2238dcc3SJonas Devlieghere        )
27199451b44SJordan Rupprecht
27299451b44SJordan Rupprecht        self.expect(
27399451b44SJordan Rupprecht            "frame variable intarr",
27499451b44SJordan Rupprecht            substrs=[
275*2238dcc3SJonas Devlieghere                "intarr = arr =",
276*2238dcc3SJonas Devlieghere                "0x00000001,0x00000001,0x00000002,0x00000003,0x00000005",
277*2238dcc3SJonas Devlieghere            ],
278*2238dcc3SJonas Devlieghere        )
27999451b44SJordan Rupprecht
28099451b44SJordan Rupprecht        self.expect(
28199451b44SJordan Rupprecht            "frame variable other.intarr",
28299451b44SJordan Rupprecht            substrs=[
283*2238dcc3SJonas Devlieghere                "intarr = arr =",
284*2238dcc3SJonas Devlieghere                "0x00000009,0x00000008,0x00000007,0x00000006,0x00000005",
285*2238dcc3SJonas Devlieghere            ],
286*2238dcc3SJonas Devlieghere        )
28799451b44SJordan Rupprecht
28899451b44SJordan Rupprecht        # printing each array item as an array
28999451b44SJordan Rupprecht        self.runCmd(
290*2238dcc3SJonas Devlieghere            'type summary add --summary-string "arr = ${var[]%float32[]}" "float[7]"'
291*2238dcc3SJonas Devlieghere        )
29299451b44SJordan Rupprecht
29399451b44SJordan Rupprecht        self.expect(
29499451b44SJordan Rupprecht            "frame variable flarr",
29599451b44SJordan Rupprecht            substrs=[
296*2238dcc3SJonas Devlieghere                "flarr = arr =",
297*2238dcc3SJonas Devlieghere                "{78.5},{77.25},{78},{76.125},{76.75},{76.875},{77}",
298*2238dcc3SJonas Devlieghere            ],
299*2238dcc3SJonas Devlieghere        )
30099451b44SJordan Rupprecht
30199451b44SJordan Rupprecht        self.expect(
30299451b44SJordan Rupprecht            "frame variable other.flarr",
30399451b44SJordan Rupprecht            substrs=[
304*2238dcc3SJonas Devlieghere                "flarr = arr = ",
305*2238dcc3SJonas Devlieghere                "{25.5},{25.25},{25.125},{26.75},{27.375},{27.5},{26.125}",
306*2238dcc3SJonas Devlieghere            ],
307*2238dcc3SJonas Devlieghere        )
30899451b44SJordan Rupprecht
30999451b44SJordan Rupprecht        # printing full array as an array
31099451b44SJordan Rupprecht        self.runCmd(
311*2238dcc3SJonas Devlieghere            'type summary add --summary-string "arr = ${var%float32[]}" "float[7]"'
312*2238dcc3SJonas Devlieghere        )
31399451b44SJordan Rupprecht
314*2238dcc3SJonas Devlieghere        self.expect(
315*2238dcc3SJonas Devlieghere            "frame variable flarr",
316*2238dcc3SJonas Devlieghere            substrs=["flarr = arr =", "78.5,77.25,78,76.125,76.75,76.875,77"],
317*2238dcc3SJonas Devlieghere        )
31899451b44SJordan Rupprecht
319*2238dcc3SJonas Devlieghere        self.expect(
320*2238dcc3SJonas Devlieghere            "frame variable other.flarr",
321*2238dcc3SJonas Devlieghere            substrs=["flarr = arr =", "25.5,25.25,25.125,26.75,27.375,27.5,26.125"],
322*2238dcc3SJonas Devlieghere        )
32399451b44SJordan Rupprecht
32499451b44SJordan Rupprecht        # using array smart summary strings for pointers should make no sense
32599451b44SJordan Rupprecht        self.runCmd(
326*2238dcc3SJonas Devlieghere            'type summary add --summary-string "arr = ${var%float32[]}" "float *"'
327*2238dcc3SJonas Devlieghere        )
32899451b44SJordan Rupprecht        self.runCmd(
329*2238dcc3SJonas Devlieghere            'type summary add --summary-string "arr = ${var%int32_t[]}" "int *"'
330*2238dcc3SJonas Devlieghere        )
33199451b44SJordan Rupprecht
332*2238dcc3SJonas Devlieghere        self.expect(
333*2238dcc3SJonas Devlieghere            "frame variable flptr",
334*2238dcc3SJonas Devlieghere            matching=False,
335*2238dcc3SJonas Devlieghere            substrs=["78.5,77.25,78,76.125,76.75,76.875,77"],
336*2238dcc3SJonas Devlieghere        )
33799451b44SJordan Rupprecht
338*2238dcc3SJonas Devlieghere        self.expect("frame variable intptr", matching=False, substrs=["1,1,2,3,5"])
33999451b44SJordan Rupprecht
34099451b44SJordan Rupprecht        # use y and Y
341*2238dcc3SJonas Devlieghere        self.runCmd('type summary add --summary-string "arr = ${var%y}" "float[7]"')
342*2238dcc3SJonas Devlieghere        self.runCmd('type summary add --summary-string "arr = ${var%y}" "int[5]"')
34399451b44SJordan Rupprecht
34499451b44SJordan Rupprecht        if process.GetByteOrder() == lldb.eByteOrderLittle:
34599451b44SJordan Rupprecht            self.expect(
34699451b44SJordan Rupprecht                "frame variable flarr",
34799451b44SJordan Rupprecht                substrs=[
348*2238dcc3SJonas Devlieghere                    "flarr = arr =",
349*2238dcc3SJonas Devlieghere                    "00 00 9d 42,00 80 9a 42,00 00 9c 42,00 40 98 42,00 80 99 42,00 c0 99 42,00 00 9a 42",
350*2238dcc3SJonas Devlieghere                ],
351*2238dcc3SJonas Devlieghere            )
35299451b44SJordan Rupprecht        else:
35399451b44SJordan Rupprecht            self.expect(
35499451b44SJordan Rupprecht                "frame variable flarr",
35599451b44SJordan Rupprecht                substrs=[
356*2238dcc3SJonas Devlieghere                    "flarr = arr =",
357*2238dcc3SJonas Devlieghere                    "42 9d 00 00,42 9a 80 00,42 9c 00 00,42 98 40 00,42 99 80 00,42 99 c0 00,42 9a 00 00",
358*2238dcc3SJonas Devlieghere                ],
359*2238dcc3SJonas Devlieghere            )
36099451b44SJordan Rupprecht
36199451b44SJordan Rupprecht        if process.GetByteOrder() == lldb.eByteOrderLittle:
36299451b44SJordan Rupprecht            self.expect(
36399451b44SJordan Rupprecht                "frame variable other.flarr",
36499451b44SJordan Rupprecht                substrs=[
365*2238dcc3SJonas Devlieghere                    "flarr = arr =",
366*2238dcc3SJonas Devlieghere                    "00 00 cc 41,00 00 ca 41,00 00 c9 41,00 00 d6 41,00 00 db 41,00 00 dc 41,00 00 d1 41",
367*2238dcc3SJonas Devlieghere                ],
368*2238dcc3SJonas Devlieghere            )
36999451b44SJordan Rupprecht        else:
37099451b44SJordan Rupprecht            self.expect(
37199451b44SJordan Rupprecht                "frame variable other.flarr",
37299451b44SJordan Rupprecht                substrs=[
373*2238dcc3SJonas Devlieghere                    "flarr = arr =",
374*2238dcc3SJonas Devlieghere                    "41 cc 00 00,41 ca 00 00,41 c9 00 00,41 d6 00 00,41 db 00 00,41 dc 00 00,41 d1 00 00",
375*2238dcc3SJonas Devlieghere                ],
376*2238dcc3SJonas Devlieghere            )
37799451b44SJordan Rupprecht
37899451b44SJordan Rupprecht        if process.GetByteOrder() == lldb.eByteOrderLittle:
37999451b44SJordan Rupprecht            self.expect(
38099451b44SJordan Rupprecht                "frame variable intarr",
38199451b44SJordan Rupprecht                substrs=[
382*2238dcc3SJonas Devlieghere                    "intarr = arr =",
383*2238dcc3SJonas Devlieghere                    "01 00 00 00,01 00 00 00,02 00 00 00,03 00 00 00,05 00 00 00",
384*2238dcc3SJonas Devlieghere                ],
385*2238dcc3SJonas Devlieghere            )
38699451b44SJordan Rupprecht        else:
38799451b44SJordan Rupprecht            self.expect(
38899451b44SJordan Rupprecht                "frame variable intarr",
38999451b44SJordan Rupprecht                substrs=[
390*2238dcc3SJonas Devlieghere                    "intarr = arr =",
391*2238dcc3SJonas Devlieghere                    "00 00 00 01,00 00 00 01,00 00 00 02,00 00 00 03,00 00 00 05",
392*2238dcc3SJonas Devlieghere                ],
393*2238dcc3SJonas Devlieghere            )
39499451b44SJordan Rupprecht
39599451b44SJordan Rupprecht        if process.GetByteOrder() == lldb.eByteOrderLittle:
39699451b44SJordan Rupprecht            self.expect(
39799451b44SJordan Rupprecht                "frame variable other.intarr",
39899451b44SJordan Rupprecht                substrs=[
399*2238dcc3SJonas Devlieghere                    "intarr = arr = ",
400*2238dcc3SJonas Devlieghere                    "09 00 00 00,08 00 00 00,07 00 00 00,06 00 00 00,05 00 00 00",
401*2238dcc3SJonas Devlieghere                ],
402*2238dcc3SJonas Devlieghere            )
40399451b44SJordan Rupprecht        else:
40499451b44SJordan Rupprecht            self.expect(
40599451b44SJordan Rupprecht                "frame variable other.intarr",
40699451b44SJordan Rupprecht                substrs=[
407*2238dcc3SJonas Devlieghere                    "intarr = arr = ",
408*2238dcc3SJonas Devlieghere                    "00 00 00 09,00 00 00 08,00 00 00 07,00 00 00 06,00 00 00 05",
409*2238dcc3SJonas Devlieghere                ],
410*2238dcc3SJonas Devlieghere            )
41199451b44SJordan Rupprecht
412*2238dcc3SJonas Devlieghere        self.runCmd('type summary add --summary-string "arr = ${var%Y}" "float[7]"')
413*2238dcc3SJonas Devlieghere        self.runCmd('type summary add --summary-string "arr = ${var%Y}" "int[5]"')
41499451b44SJordan Rupprecht
41599451b44SJordan Rupprecht        if process.GetByteOrder() == lldb.eByteOrderLittle:
41699451b44SJordan Rupprecht            self.expect(
41799451b44SJordan Rupprecht                "frame variable flarr",
41899451b44SJordan Rupprecht                substrs=[
419*2238dcc3SJonas Devlieghere                    "flarr = arr =",
420*2238dcc3SJonas Devlieghere                    "00 00 9d 42",
421*2238dcc3SJonas Devlieghere                    "00 80 9a 42",
422*2238dcc3SJonas Devlieghere                    "00 00 9c 42",
423*2238dcc3SJonas Devlieghere                    "00 40 98 42",
424*2238dcc3SJonas Devlieghere                    "00 80 99 42",
425*2238dcc3SJonas Devlieghere                    "00 c0 99 42",
426*2238dcc3SJonas Devlieghere                    "00 00 9a 42",
427*2238dcc3SJonas Devlieghere                ],
428*2238dcc3SJonas Devlieghere            )
42999451b44SJordan Rupprecht        else:
43099451b44SJordan Rupprecht            self.expect(
43199451b44SJordan Rupprecht                "frame variable flarr",
43299451b44SJordan Rupprecht                substrs=[
433*2238dcc3SJonas Devlieghere                    "flarr = arr =",
434*2238dcc3SJonas Devlieghere                    "42 9d 00 00",
435*2238dcc3SJonas Devlieghere                    "42 9a 80 00",
436*2238dcc3SJonas Devlieghere                    "42 9c 00 00",
437*2238dcc3SJonas Devlieghere                    "42 98 40 00",
438*2238dcc3SJonas Devlieghere                    "42 99 80 00",
439*2238dcc3SJonas Devlieghere                    "42 99 c0 00",
440*2238dcc3SJonas Devlieghere                    "42 9a 00 00",
441*2238dcc3SJonas Devlieghere                ],
442*2238dcc3SJonas Devlieghere            )
44399451b44SJordan Rupprecht
44499451b44SJordan Rupprecht        if process.GetByteOrder() == lldb.eByteOrderLittle:
44599451b44SJordan Rupprecht            self.expect(
44699451b44SJordan Rupprecht                "frame variable other.flarr",
44799451b44SJordan Rupprecht                substrs=[
448*2238dcc3SJonas Devlieghere                    "flarr = arr =",
449*2238dcc3SJonas Devlieghere                    "00 00 cc 41",
450*2238dcc3SJonas Devlieghere                    "00 00 ca 41",
451*2238dcc3SJonas Devlieghere                    "00 00 c9 41",
452*2238dcc3SJonas Devlieghere                    "00 00 d6 41",
453*2238dcc3SJonas Devlieghere                    "00 00 db 41",
454*2238dcc3SJonas Devlieghere                    "00 00 dc 41",
455*2238dcc3SJonas Devlieghere                    "00 00 d1 41",
456*2238dcc3SJonas Devlieghere                ],
457*2238dcc3SJonas Devlieghere            )
45899451b44SJordan Rupprecht        else:
45999451b44SJordan Rupprecht            self.expect(
46099451b44SJordan Rupprecht                "frame variable other.flarr",
46199451b44SJordan Rupprecht                substrs=[
462*2238dcc3SJonas Devlieghere                    "flarr = arr =",
463*2238dcc3SJonas Devlieghere                    "41 cc 00 00",
464*2238dcc3SJonas Devlieghere                    "41 ca 00 00",
465*2238dcc3SJonas Devlieghere                    "41 c9 00 00",
466*2238dcc3SJonas Devlieghere                    "41 d6 00 00",
467*2238dcc3SJonas Devlieghere                    "41 db 00 00",
468*2238dcc3SJonas Devlieghere                    "41 dc 00 00",
469*2238dcc3SJonas Devlieghere                    "41 d1 00 00",
470*2238dcc3SJonas Devlieghere                ],
471*2238dcc3SJonas Devlieghere            )
47299451b44SJordan Rupprecht
47399451b44SJordan Rupprecht        if process.GetByteOrder() == lldb.eByteOrderLittle:
474*2238dcc3SJonas Devlieghere            self.expect(
475*2238dcc3SJonas Devlieghere                "frame variable intarr",
476*2238dcc3SJonas Devlieghere                substrs=["intarr = arr =", "....,01 00 00 00", "....,05 00 00 00"],
477*2238dcc3SJonas Devlieghere            )
47899451b44SJordan Rupprecht        else:
479*2238dcc3SJonas Devlieghere            self.expect(
480*2238dcc3SJonas Devlieghere                "frame variable intarr",
481*2238dcc3SJonas Devlieghere                substrs=["intarr = arr =", "....,00 00 00 01", "....,00 00 00 05"],
482*2238dcc3SJonas Devlieghere            )
48399451b44SJordan Rupprecht
48499451b44SJordan Rupprecht        if process.GetByteOrder() == lldb.eByteOrderLittle:
485*2238dcc3SJonas Devlieghere            self.expect(
486*2238dcc3SJonas Devlieghere                "frame variable other.intarr",
487*2238dcc3SJonas Devlieghere                substrs=["intarr = arr = ", "09 00 00 00", "....,07 00 00 00"],
488*2238dcc3SJonas Devlieghere            )
48999451b44SJordan Rupprecht        else:
490*2238dcc3SJonas Devlieghere            self.expect(
491*2238dcc3SJonas Devlieghere                "frame variable other.intarr",
492*2238dcc3SJonas Devlieghere                substrs=["intarr = arr = ", "00 00 00 09", "....,00 00 00 07"],
493*2238dcc3SJonas Devlieghere            )
494