1*99451b44SJordan Rupprecht""" 2*99451b44SJordan RupprechtTest lldb data formatter subsystem. 3*99451b44SJordan Rupprecht""" 4*99451b44SJordan Rupprecht 5*99451b44SJordan Rupprecht 6*99451b44SJordan Rupprecht 7*99451b44SJordan Rupprechtimport lldb 8*99451b44SJordan Rupprechtfrom lldbsuite.test.decorators import * 9*99451b44SJordan Rupprechtfrom lldbsuite.test.lldbtest import * 10*99451b44SJordan Rupprechtfrom lldbsuite.test import lldbutil 11*99451b44SJordan Rupprecht 12*99451b44SJordan Rupprecht 13*99451b44SJordan Rupprechtclass SmartArrayDataFormatterTestCase(TestBase): 14*99451b44SJordan Rupprecht 15*99451b44SJordan Rupprecht def test_with_run_command(self): 16*99451b44SJordan Rupprecht """Test data formatter commands.""" 17*99451b44SJordan Rupprecht self.build() 18*99451b44SJordan Rupprecht self.data_formatter_commands() 19*99451b44SJordan Rupprecht 20*99451b44SJordan Rupprecht def setUp(self): 21*99451b44SJordan Rupprecht # Call super's setUp(). 22*99451b44SJordan Rupprecht TestBase.setUp(self) 23*99451b44SJordan Rupprecht # Find the line number to break at. 24*99451b44SJordan Rupprecht self.line = line_number('main.cpp', '// Set break point at this line.') 25*99451b44SJordan Rupprecht 26*99451b44SJordan Rupprecht def data_formatter_commands(self): 27*99451b44SJordan Rupprecht """Test that that file and class static variables display correctly.""" 28*99451b44SJordan Rupprecht self.runCmd("file " + self.getBuildArtifact("a.out"), CURRENT_EXECUTABLE_SET) 29*99451b44SJordan Rupprecht 30*99451b44SJordan Rupprecht lldbutil.run_break_set_by_file_and_line( 31*99451b44SJordan Rupprecht self, "main.cpp", self.line, num_expected_locations=1, loc_exact=True) 32*99451b44SJordan Rupprecht 33*99451b44SJordan Rupprecht self.runCmd("run", RUN_SUCCEEDED) 34*99451b44SJordan Rupprecht 35*99451b44SJordan Rupprecht process = self.dbg.GetSelectedTarget().GetProcess() 36*99451b44SJordan Rupprecht 37*99451b44SJordan Rupprecht # The stop reason of the thread should be breakpoint. 38*99451b44SJordan Rupprecht self.expect("thread list", STOPPED_DUE_TO_BREAKPOINT, 39*99451b44SJordan Rupprecht substrs=['stopped', 40*99451b44SJordan Rupprecht 'stop reason = breakpoint']) 41*99451b44SJordan Rupprecht 42*99451b44SJordan Rupprecht # This is the function to remove the custom formats in order to have a 43*99451b44SJordan Rupprecht # clean slate for the next test case. 44*99451b44SJordan Rupprecht def cleanup(): 45*99451b44SJordan Rupprecht self.runCmd('type format clear', check=False) 46*99451b44SJordan Rupprecht self.runCmd('type summary clear', check=False) 47*99451b44SJordan Rupprecht 48*99451b44SJordan Rupprecht # Execute the cleanup function during test case tear down. 49*99451b44SJordan Rupprecht self.addTearDownHook(cleanup) 50*99451b44SJordan Rupprecht 51*99451b44SJordan Rupprecht# check that we are not looping here 52*99451b44SJordan Rupprecht self.runCmd("type summary add --summary-string \"${var%V}\" SomeData") 53*99451b44SJordan Rupprecht 54*99451b44SJordan Rupprecht self.expect("frame variable data", 55*99451b44SJordan Rupprecht substrs=['SomeData @ 0x']) 56*99451b44SJordan Rupprecht# ${var%s} 57*99451b44SJordan Rupprecht self.runCmd( 58*99451b44SJordan Rupprecht "type summary add --summary-string \"ptr = ${var%s}\" \"char *\"") 59*99451b44SJordan Rupprecht 60*99451b44SJordan Rupprecht self.expect("frame variable strptr", 61*99451b44SJordan Rupprecht substrs=['ptr = \"', 62*99451b44SJordan Rupprecht 'Hello world!']) 63*99451b44SJordan Rupprecht 64*99451b44SJordan Rupprecht self.expect("frame variable other.strptr", 65*99451b44SJordan Rupprecht substrs=['ptr = \"', 66*99451b44SJordan Rupprecht 'Nested Hello world!']) 67*99451b44SJordan Rupprecht 68*99451b44SJordan Rupprecht self.runCmd( 69*99451b44SJordan Rupprecht "type summary add --summary-string \"arr = ${var%s}\" -x \"char\\[[0-9]+\\]\"") 70*99451b44SJordan Rupprecht 71*99451b44SJordan Rupprecht self.expect("frame variable strarr", 72*99451b44SJordan Rupprecht substrs=['arr = \"', 73*99451b44SJordan Rupprecht 'Hello world!']) 74*99451b44SJordan Rupprecht 75*99451b44SJordan Rupprecht self.expect("frame variable other.strarr", 76*99451b44SJordan Rupprecht substrs=['arr = \"', 77*99451b44SJordan Rupprecht 'Nested Hello world!']) 78*99451b44SJordan Rupprecht 79*99451b44SJordan Rupprecht self.expect("p strarr", 80*99451b44SJordan Rupprecht substrs=['arr = \"', 81*99451b44SJordan Rupprecht 'Hello world!']) 82*99451b44SJordan Rupprecht 83*99451b44SJordan Rupprecht self.expect("p other.strarr", 84*99451b44SJordan Rupprecht substrs=['arr = \"', 85*99451b44SJordan Rupprecht 'Nested Hello world!']) 86*99451b44SJordan Rupprecht 87*99451b44SJordan Rupprecht# ${var%c} 88*99451b44SJordan Rupprecht self.runCmd( 89*99451b44SJordan Rupprecht "type summary add --summary-string \"ptr = ${var%c}\" \"char *\"") 90*99451b44SJordan Rupprecht 91*99451b44SJordan Rupprecht self.expect("frame variable strptr", 92*99451b44SJordan Rupprecht substrs=['ptr = \"', 93*99451b44SJordan Rupprecht 'Hello world!']) 94*99451b44SJordan Rupprecht 95*99451b44SJordan Rupprecht self.expect("frame variable other.strptr", 96*99451b44SJordan Rupprecht substrs=['ptr = \"', 97*99451b44SJordan Rupprecht 'Nested Hello world!']) 98*99451b44SJordan Rupprecht 99*99451b44SJordan Rupprecht self.expect("p strptr", 100*99451b44SJordan Rupprecht substrs=['ptr = \"', 101*99451b44SJordan Rupprecht 'Hello world!']) 102*99451b44SJordan Rupprecht 103*99451b44SJordan Rupprecht self.expect("p other.strptr", 104*99451b44SJordan Rupprecht substrs=['ptr = \"', 105*99451b44SJordan Rupprecht 'Nested Hello world!']) 106*99451b44SJordan Rupprecht 107*99451b44SJordan Rupprecht self.runCmd( 108*99451b44SJordan Rupprecht "type summary add --summary-string \"arr = ${var%c}\" -x \"char\\[[0-9]+\\]\"") 109*99451b44SJordan Rupprecht 110*99451b44SJordan Rupprecht self.expect("frame variable strarr", 111*99451b44SJordan Rupprecht substrs=['arr = \"', 112*99451b44SJordan Rupprecht 'Hello world!']) 113*99451b44SJordan Rupprecht 114*99451b44SJordan Rupprecht self.expect("frame variable other.strarr", 115*99451b44SJordan Rupprecht substrs=['arr = \"', 116*99451b44SJordan Rupprecht 'Nested Hello world!']) 117*99451b44SJordan Rupprecht 118*99451b44SJordan Rupprecht self.expect("p strarr", 119*99451b44SJordan Rupprecht substrs=['arr = \"', 120*99451b44SJordan Rupprecht 'Hello world!']) 121*99451b44SJordan Rupprecht 122*99451b44SJordan Rupprecht self.expect("p other.strarr", 123*99451b44SJordan Rupprecht substrs=['arr = \"', 124*99451b44SJordan Rupprecht 'Nested Hello world!']) 125*99451b44SJordan Rupprecht 126*99451b44SJordan Rupprecht# ${var%char[]} 127*99451b44SJordan Rupprecht self.runCmd( 128*99451b44SJordan Rupprecht "type summary add --summary-string \"arr = ${var%char[]}\" -x \"char\\[[0-9]+\\]\"") 129*99451b44SJordan Rupprecht 130*99451b44SJordan Rupprecht self.expect("frame variable strarr", 131*99451b44SJordan Rupprecht substrs=['arr = \"', 132*99451b44SJordan Rupprecht 'Hello world!']) 133*99451b44SJordan Rupprecht 134*99451b44SJordan Rupprecht self.expect("frame variable other.strarr", 135*99451b44SJordan Rupprecht substrs=['arr = ', 136*99451b44SJordan Rupprecht 'Nested Hello world!']) 137*99451b44SJordan Rupprecht 138*99451b44SJordan Rupprecht self.expect("p strarr", 139*99451b44SJordan Rupprecht substrs=['arr = \"', 140*99451b44SJordan Rupprecht 'Hello world!']) 141*99451b44SJordan Rupprecht 142*99451b44SJordan Rupprecht self.expect("p other.strarr", 143*99451b44SJordan Rupprecht substrs=['arr = ', 144*99451b44SJordan Rupprecht 'Nested Hello world!']) 145*99451b44SJordan Rupprecht 146*99451b44SJordan Rupprecht self.runCmd( 147*99451b44SJordan Rupprecht "type summary add --summary-string \"ptr = ${var%char[]}\" \"char *\"") 148*99451b44SJordan Rupprecht 149*99451b44SJordan Rupprecht self.expect("frame variable strptr", 150*99451b44SJordan Rupprecht substrs=['ptr = \"', 151*99451b44SJordan Rupprecht 'Hello world!']) 152*99451b44SJordan Rupprecht 153*99451b44SJordan Rupprecht self.expect("frame variable other.strptr", 154*99451b44SJordan Rupprecht substrs=['ptr = \"', 155*99451b44SJordan Rupprecht 'Nested Hello world!']) 156*99451b44SJordan Rupprecht 157*99451b44SJordan Rupprecht self.expect("p strptr", 158*99451b44SJordan Rupprecht substrs=['ptr = \"', 159*99451b44SJordan Rupprecht 'Hello world!']) 160*99451b44SJordan Rupprecht 161*99451b44SJordan Rupprecht self.expect("p other.strptr", 162*99451b44SJordan Rupprecht substrs=['ptr = \"', 163*99451b44SJordan Rupprecht 'Nested Hello world!']) 164*99451b44SJordan Rupprecht 165*99451b44SJordan Rupprecht# ${var%a} 166*99451b44SJordan Rupprecht self.runCmd( 167*99451b44SJordan Rupprecht "type summary add --summary-string \"arr = ${var%a}\" -x \"char\\[[0-9]+\\]\"") 168*99451b44SJordan Rupprecht 169*99451b44SJordan Rupprecht self.expect("frame variable strarr", 170*99451b44SJordan Rupprecht substrs=['arr = \"', 171*99451b44SJordan Rupprecht 'Hello world!']) 172*99451b44SJordan Rupprecht 173*99451b44SJordan Rupprecht self.expect("frame variable other.strarr", 174*99451b44SJordan Rupprecht substrs=['arr = ', 175*99451b44SJordan Rupprecht 'Nested Hello world!']) 176*99451b44SJordan Rupprecht 177*99451b44SJordan Rupprecht self.expect("p strarr", 178*99451b44SJordan Rupprecht substrs=['arr = \"', 179*99451b44SJordan Rupprecht 'Hello world!']) 180*99451b44SJordan Rupprecht 181*99451b44SJordan Rupprecht self.expect("p other.strarr", 182*99451b44SJordan Rupprecht substrs=['arr = ', 183*99451b44SJordan Rupprecht 'Nested Hello world!']) 184*99451b44SJordan Rupprecht 185*99451b44SJordan Rupprecht self.runCmd( 186*99451b44SJordan Rupprecht "type summary add --summary-string \"ptr = ${var%a}\" \"char *\"") 187*99451b44SJordan Rupprecht 188*99451b44SJordan Rupprecht self.expect("frame variable strptr", 189*99451b44SJordan Rupprecht substrs=['ptr = \"', 190*99451b44SJordan Rupprecht 'Hello world!']) 191*99451b44SJordan Rupprecht 192*99451b44SJordan Rupprecht self.expect("frame variable other.strptr", 193*99451b44SJordan Rupprecht substrs=['ptr = \"', 194*99451b44SJordan Rupprecht 'Nested Hello world!']) 195*99451b44SJordan Rupprecht 196*99451b44SJordan Rupprecht self.expect("p strptr", 197*99451b44SJordan Rupprecht substrs=['ptr = \"', 198*99451b44SJordan Rupprecht 'Hello world!']) 199*99451b44SJordan Rupprecht 200*99451b44SJordan Rupprecht self.expect("p other.strptr", 201*99451b44SJordan Rupprecht substrs=['ptr = \"', 202*99451b44SJordan Rupprecht 'Nested Hello world!']) 203*99451b44SJordan Rupprecht 204*99451b44SJordan Rupprecht self.runCmd( 205*99451b44SJordan Rupprecht "type summary add --summary-string \"ptr = ${var[]%char[]}\" \"char *\"") 206*99451b44SJordan Rupprecht 207*99451b44SJordan Rupprecht# I do not know the size of the data, but you are asking for a full array slice.. 208*99451b44SJordan Rupprecht# use the ${var%char[]} to obtain a string as result 209*99451b44SJordan Rupprecht self.expect("frame variable strptr", matching=False, 210*99451b44SJordan Rupprecht substrs=['ptr = \"', 211*99451b44SJordan Rupprecht 'Hello world!']) 212*99451b44SJordan Rupprecht 213*99451b44SJordan Rupprecht self.expect("frame variable other.strptr", matching=False, 214*99451b44SJordan Rupprecht substrs=['ptr = \"', 215*99451b44SJordan Rupprecht 'Nested Hello world!']) 216*99451b44SJordan Rupprecht 217*99451b44SJordan Rupprecht self.expect("p strptr", matching=False, 218*99451b44SJordan Rupprecht substrs=['ptr = \"', 219*99451b44SJordan Rupprecht 'Hello world!']) 220*99451b44SJordan Rupprecht 221*99451b44SJordan Rupprecht self.expect("p other.strptr", matching=False, 222*99451b44SJordan Rupprecht substrs=['ptr = \"', 223*99451b44SJordan Rupprecht 'Nested Hello world!']) 224*99451b44SJordan Rupprecht 225*99451b44SJordan Rupprecht# You asked an array-style printout... 226*99451b44SJordan Rupprecht self.runCmd( 227*99451b44SJordan Rupprecht "type summary add --summary-string \"ptr = ${var[0-1]%char[]}\" \"char *\"") 228*99451b44SJordan Rupprecht 229*99451b44SJordan Rupprecht self.expect("frame variable strptr", 230*99451b44SJordan Rupprecht substrs=['ptr = ', 231*99451b44SJordan Rupprecht '[{H},{e}]']) 232*99451b44SJordan Rupprecht 233*99451b44SJordan Rupprecht self.expect("frame variable other.strptr", 234*99451b44SJordan Rupprecht substrs=['ptr = ', 235*99451b44SJordan Rupprecht '[{N},{e}]']) 236*99451b44SJordan Rupprecht 237*99451b44SJordan Rupprecht self.expect("p strptr", 238*99451b44SJordan Rupprecht substrs=['ptr = ', 239*99451b44SJordan Rupprecht '[{H},{e}]']) 240*99451b44SJordan Rupprecht 241*99451b44SJordan Rupprecht self.expect("p other.strptr", 242*99451b44SJordan Rupprecht substrs=['ptr = ', 243*99451b44SJordan Rupprecht '[{N},{e}]']) 244*99451b44SJordan Rupprecht 245*99451b44SJordan Rupprecht# using [] is required here 246*99451b44SJordan Rupprecht self.runCmd( 247*99451b44SJordan Rupprecht "type summary add --summary-string \"arr = ${var%x}\" \"int [5]\"") 248*99451b44SJordan Rupprecht 249*99451b44SJordan Rupprecht self.expect("frame variable intarr", matching=False, substrs=[ 250*99451b44SJordan Rupprecht '0x00000001,0x00000001,0x00000002,0x00000003,0x00000005']) 251*99451b44SJordan Rupprecht 252*99451b44SJordan Rupprecht self.expect("frame variable other.intarr", matching=False, substrs=[ 253*99451b44SJordan Rupprecht '0x00000009,0x00000008,0x00000007,0x00000006,0x00000005']) 254*99451b44SJordan Rupprecht 255*99451b44SJordan Rupprecht self.runCmd( 256*99451b44SJordan Rupprecht "type summary add --summary-string \"arr = ${var[]%x}\" \"int[5]\"") 257*99451b44SJordan Rupprecht 258*99451b44SJordan Rupprecht self.expect( 259*99451b44SJordan Rupprecht "frame variable intarr", 260*99451b44SJordan Rupprecht substrs=[ 261*99451b44SJordan Rupprecht 'intarr = arr =', 262*99451b44SJordan Rupprecht '0x00000001,0x00000001,0x00000002,0x00000003,0x00000005']) 263*99451b44SJordan Rupprecht 264*99451b44SJordan Rupprecht self.expect( 265*99451b44SJordan Rupprecht "frame variable other.intarr", 266*99451b44SJordan Rupprecht substrs=[ 267*99451b44SJordan Rupprecht 'intarr = arr =', 268*99451b44SJordan Rupprecht '0x00000009,0x00000008,0x00000007,0x00000006,0x00000005']) 269*99451b44SJordan Rupprecht 270*99451b44SJordan Rupprecht# printing each array item as an array 271*99451b44SJordan Rupprecht self.runCmd( 272*99451b44SJordan Rupprecht "type summary add --summary-string \"arr = ${var[]%uint32_t[]}\" \"int[5]\"") 273*99451b44SJordan Rupprecht 274*99451b44SJordan Rupprecht self.expect( 275*99451b44SJordan Rupprecht "frame variable intarr", 276*99451b44SJordan Rupprecht substrs=[ 277*99451b44SJordan Rupprecht 'intarr = arr =', 278*99451b44SJordan Rupprecht '{0x00000001},{0x00000001},{0x00000002},{0x00000003},{0x00000005}']) 279*99451b44SJordan Rupprecht 280*99451b44SJordan Rupprecht self.expect( 281*99451b44SJordan Rupprecht "frame variable other.intarr", 282*99451b44SJordan Rupprecht substrs=[ 283*99451b44SJordan Rupprecht 'intarr = arr = ', 284*99451b44SJordan Rupprecht '{0x00000009},{0x00000008},{0x00000007},{0x00000006},{0x00000005}']) 285*99451b44SJordan Rupprecht 286*99451b44SJordan Rupprecht# printing full array as an array 287*99451b44SJordan Rupprecht self.runCmd( 288*99451b44SJordan Rupprecht "type summary add --summary-string \"arr = ${var%uint32_t[]}\" \"int[5]\"") 289*99451b44SJordan Rupprecht 290*99451b44SJordan Rupprecht self.expect( 291*99451b44SJordan Rupprecht "frame variable intarr", 292*99451b44SJordan Rupprecht substrs=[ 293*99451b44SJordan Rupprecht 'intarr = arr =', 294*99451b44SJordan Rupprecht '0x00000001,0x00000001,0x00000002,0x00000003,0x00000005']) 295*99451b44SJordan Rupprecht 296*99451b44SJordan Rupprecht self.expect( 297*99451b44SJordan Rupprecht "frame variable other.intarr", 298*99451b44SJordan Rupprecht substrs=[ 299*99451b44SJordan Rupprecht 'intarr = arr =', 300*99451b44SJordan Rupprecht '0x00000009,0x00000008,0x00000007,0x00000006,0x00000005']) 301*99451b44SJordan Rupprecht 302*99451b44SJordan Rupprecht# printing each array item as an array 303*99451b44SJordan Rupprecht self.runCmd( 304*99451b44SJordan Rupprecht "type summary add --summary-string \"arr = ${var[]%float32[]}\" \"float[7]\"") 305*99451b44SJordan Rupprecht 306*99451b44SJordan Rupprecht self.expect( 307*99451b44SJordan Rupprecht "frame variable flarr", 308*99451b44SJordan Rupprecht substrs=[ 309*99451b44SJordan Rupprecht 'flarr = arr =', 310*99451b44SJordan Rupprecht '{78.5},{77.25},{78},{76.125},{76.75},{76.875},{77}']) 311*99451b44SJordan Rupprecht 312*99451b44SJordan Rupprecht self.expect( 313*99451b44SJordan Rupprecht "frame variable other.flarr", 314*99451b44SJordan Rupprecht substrs=[ 315*99451b44SJordan Rupprecht 'flarr = arr = ', 316*99451b44SJordan Rupprecht '{25.5},{25.25},{25.125},{26.75},{27.375},{27.5},{26.125}']) 317*99451b44SJordan Rupprecht 318*99451b44SJordan Rupprecht# printing full array as an array 319*99451b44SJordan Rupprecht self.runCmd( 320*99451b44SJordan Rupprecht "type summary add --summary-string \"arr = ${var%float32[]}\" \"float[7]\"") 321*99451b44SJordan Rupprecht 322*99451b44SJordan Rupprecht self.expect("frame variable flarr", 323*99451b44SJordan Rupprecht substrs=['flarr = arr =', 324*99451b44SJordan Rupprecht '78.5,77.25,78,76.125,76.75,76.875,77']) 325*99451b44SJordan Rupprecht 326*99451b44SJordan Rupprecht self.expect("frame variable other.flarr", 327*99451b44SJordan Rupprecht substrs=['flarr = arr =', 328*99451b44SJordan Rupprecht '25.5,25.25,25.125,26.75,27.375,27.5,26.125']) 329*99451b44SJordan Rupprecht 330*99451b44SJordan Rupprecht# using array smart summary strings for pointers should make no sense 331*99451b44SJordan Rupprecht self.runCmd( 332*99451b44SJordan Rupprecht "type summary add --summary-string \"arr = ${var%float32[]}\" \"float *\"") 333*99451b44SJordan Rupprecht self.runCmd( 334*99451b44SJordan Rupprecht "type summary add --summary-string \"arr = ${var%int32_t[]}\" \"int *\"") 335*99451b44SJordan Rupprecht 336*99451b44SJordan Rupprecht self.expect("frame variable flptr", matching=False, 337*99451b44SJordan Rupprecht substrs=['78.5,77.25,78,76.125,76.75,76.875,77']) 338*99451b44SJordan Rupprecht 339*99451b44SJordan Rupprecht self.expect("frame variable intptr", matching=False, 340*99451b44SJordan Rupprecht substrs=['1,1,2,3,5']) 341*99451b44SJordan Rupprecht 342*99451b44SJordan Rupprecht# use y and Y 343*99451b44SJordan Rupprecht self.runCmd( 344*99451b44SJordan Rupprecht "type summary add --summary-string \"arr = ${var%y}\" \"float[7]\"") 345*99451b44SJordan Rupprecht self.runCmd( 346*99451b44SJordan Rupprecht "type summary add --summary-string \"arr = ${var%y}\" \"int[5]\"") 347*99451b44SJordan Rupprecht 348*99451b44SJordan Rupprecht if process.GetByteOrder() == lldb.eByteOrderLittle: 349*99451b44SJordan Rupprecht self.expect( 350*99451b44SJordan Rupprecht "frame variable flarr", 351*99451b44SJordan Rupprecht substrs=[ 352*99451b44SJordan Rupprecht 'flarr = arr =', 353*99451b44SJordan Rupprecht '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']) 354*99451b44SJordan Rupprecht else: 355*99451b44SJordan Rupprecht self.expect( 356*99451b44SJordan Rupprecht "frame variable flarr", 357*99451b44SJordan Rupprecht substrs=[ 358*99451b44SJordan Rupprecht 'flarr = arr =', 359*99451b44SJordan Rupprecht '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']) 360*99451b44SJordan Rupprecht 361*99451b44SJordan Rupprecht if process.GetByteOrder() == lldb.eByteOrderLittle: 362*99451b44SJordan Rupprecht self.expect( 363*99451b44SJordan Rupprecht "frame variable other.flarr", 364*99451b44SJordan Rupprecht substrs=[ 365*99451b44SJordan Rupprecht 'flarr = arr =', 366*99451b44SJordan Rupprecht '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*99451b44SJordan Rupprecht else: 368*99451b44SJordan Rupprecht self.expect( 369*99451b44SJordan Rupprecht "frame variable other.flarr", 370*99451b44SJordan Rupprecht substrs=[ 371*99451b44SJordan Rupprecht 'flarr = arr =', 372*99451b44SJordan Rupprecht '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']) 373*99451b44SJordan Rupprecht 374*99451b44SJordan Rupprecht if process.GetByteOrder() == lldb.eByteOrderLittle: 375*99451b44SJordan Rupprecht self.expect( 376*99451b44SJordan Rupprecht "frame variable intarr", 377*99451b44SJordan Rupprecht substrs=[ 378*99451b44SJordan Rupprecht 'intarr = arr =', 379*99451b44SJordan Rupprecht '01 00 00 00,01 00 00 00,02 00 00 00,03 00 00 00,05 00 00 00']) 380*99451b44SJordan Rupprecht else: 381*99451b44SJordan Rupprecht self.expect( 382*99451b44SJordan Rupprecht "frame variable intarr", 383*99451b44SJordan Rupprecht substrs=[ 384*99451b44SJordan Rupprecht 'intarr = arr =', 385*99451b44SJordan Rupprecht '00 00 00 01,00 00 00 01,00 00 00 02,00 00 00 03,00 00 00 05']) 386*99451b44SJordan Rupprecht 387*99451b44SJordan Rupprecht if process.GetByteOrder() == lldb.eByteOrderLittle: 388*99451b44SJordan Rupprecht self.expect( 389*99451b44SJordan Rupprecht "frame variable other.intarr", 390*99451b44SJordan Rupprecht substrs=[ 391*99451b44SJordan Rupprecht 'intarr = arr = ', 392*99451b44SJordan Rupprecht '09 00 00 00,08 00 00 00,07 00 00 00,06 00 00 00,05 00 00 00']) 393*99451b44SJordan Rupprecht else: 394*99451b44SJordan Rupprecht self.expect( 395*99451b44SJordan Rupprecht "frame variable other.intarr", 396*99451b44SJordan Rupprecht substrs=[ 397*99451b44SJordan Rupprecht 'intarr = arr = ', 398*99451b44SJordan Rupprecht '00 00 00 09,00 00 00 08,00 00 00 07,00 00 00 06,00 00 00 05']) 399*99451b44SJordan Rupprecht 400*99451b44SJordan Rupprecht self.runCmd( 401*99451b44SJordan Rupprecht "type summary add --summary-string \"arr = ${var%Y}\" \"float[7]\"") 402*99451b44SJordan Rupprecht self.runCmd( 403*99451b44SJordan Rupprecht "type summary add --summary-string \"arr = ${var%Y}\" \"int[5]\"") 404*99451b44SJordan Rupprecht 405*99451b44SJordan Rupprecht if process.GetByteOrder() == lldb.eByteOrderLittle: 406*99451b44SJordan Rupprecht self.expect( 407*99451b44SJordan Rupprecht "frame variable flarr", 408*99451b44SJordan Rupprecht substrs=[ 409*99451b44SJordan Rupprecht 'flarr = arr =', 410*99451b44SJordan Rupprecht '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']) 411*99451b44SJordan Rupprecht else: 412*99451b44SJordan Rupprecht self.expect( 413*99451b44SJordan Rupprecht "frame variable flarr", 414*99451b44SJordan Rupprecht substrs=[ 415*99451b44SJordan Rupprecht 'flarr = arr =', 416*99451b44SJordan Rupprecht '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']) 417*99451b44SJordan Rupprecht 418*99451b44SJordan Rupprecht if process.GetByteOrder() == lldb.eByteOrderLittle: 419*99451b44SJordan Rupprecht self.expect( 420*99451b44SJordan Rupprecht "frame variable other.flarr", 421*99451b44SJordan Rupprecht substrs=[ 422*99451b44SJordan Rupprecht 'flarr = arr =', 423*99451b44SJordan Rupprecht '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']) 424*99451b44SJordan Rupprecht else: 425*99451b44SJordan Rupprecht self.expect( 426*99451b44SJordan Rupprecht "frame variable other.flarr", 427*99451b44SJordan Rupprecht substrs=[ 428*99451b44SJordan Rupprecht 'flarr = arr =', 429*99451b44SJordan Rupprecht '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']) 430*99451b44SJordan Rupprecht 431*99451b44SJordan Rupprecht if process.GetByteOrder() == lldb.eByteOrderLittle: 432*99451b44SJordan Rupprecht self.expect("frame variable intarr", 433*99451b44SJordan Rupprecht substrs=['intarr = arr =', 434*99451b44SJordan Rupprecht '....,01 00 00 00', 435*99451b44SJordan Rupprecht '....,05 00 00 00']) 436*99451b44SJordan Rupprecht else: 437*99451b44SJordan Rupprecht self.expect("frame variable intarr", 438*99451b44SJordan Rupprecht substrs=['intarr = arr =', 439*99451b44SJordan Rupprecht '....,00 00 00 01', 440*99451b44SJordan Rupprecht '....,00 00 00 05']) 441*99451b44SJordan Rupprecht 442*99451b44SJordan Rupprecht if process.GetByteOrder() == lldb.eByteOrderLittle: 443*99451b44SJordan Rupprecht self.expect("frame variable other.intarr", 444*99451b44SJordan Rupprecht substrs=['intarr = arr = ', 445*99451b44SJordan Rupprecht '09 00 00 00', 446*99451b44SJordan Rupprecht '....,07 00 00 00']) 447*99451b44SJordan Rupprecht else: 448*99451b44SJordan Rupprecht self.expect("frame variable other.intarr", 449*99451b44SJordan Rupprecht substrs=['intarr = arr = ', 450*99451b44SJordan Rupprecht '00 00 00 09', 451*99451b44SJordan Rupprecht '....,00 00 00 07']) 452