1*99451b44SJordan Rupprecht"""
2*99451b44SJordan RupprechtTest the output of `frame diagnose` for an array access
3*99451b44SJordan Rupprecht"""
4*99451b44SJordan Rupprecht
5*99451b44SJordan Rupprecht
6*99451b44SJordan Rupprechtimport lldb
7*99451b44SJordan Rupprechtfrom lldbsuite.test.decorators import *
8*99451b44SJordan Rupprechtfrom lldbsuite.test.lldbtest import *
9*99451b44SJordan Rupprechtfrom lldbsuite.test import lldbutil
10*99451b44SJordan Rupprecht
11*99451b44SJordan Rupprecht
12*99451b44SJordan Rupprechtclass TestArray(TestBase):
13*99451b44SJordan Rupprecht    mydir = TestBase.compute_mydir(__file__)
14*99451b44SJordan Rupprecht
15*99451b44SJordan Rupprecht    @skipUnlessDarwin
16*99451b44SJordan Rupprecht    @skipIfDarwinEmbedded  # <rdar://problem/33842388> frame diagnose doesn't work for armv7 or arm64
17*99451b44SJordan Rupprecht    def test_array(self):
18*99451b44SJordan Rupprecht        self.build()
19*99451b44SJordan Rupprecht        exe = self.getBuildArtifact("a.out")
20*99451b44SJordan Rupprecht        self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
21*99451b44SJordan Rupprecht        self.runCmd("run", RUN_SUCCEEDED)
22*99451b44SJordan Rupprecht        self.expect("thread list", "Thread should be stopped",
23*99451b44SJordan Rupprecht                    substrs=['stopped'])
24*99451b44SJordan Rupprecht        self.expect(
25*99451b44SJordan Rupprecht            "frame diagnose",
26*99451b44SJordan Rupprecht            "Crash diagnosis was accurate",
27*99451b44SJordan Rupprecht            substrs=["a[10]"])
28