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