1*99451b44SJordan Rupprecht"""Test that the Objective-C syntax for dictionary/array literals and indexing works"""
2*99451b44SJordan Rupprecht
3*99451b44SJordan Rupprecht
4*99451b44SJordan Rupprechtimport lldb
5*99451b44SJordan Rupprechtfrom lldbsuite.test.decorators import *
6*99451b44SJordan Rupprechtfrom lldbsuite.test.lldbtest import *
7*99451b44SJordan Rupprechtfrom lldbsuite.test import lldbutil
8*99451b44SJordan Rupprecht
9*99451b44SJordan Rupprechtfrom ObjCNewSyntaxTest import ObjCNewSyntaxTest
10*99451b44SJordan Rupprecht
11*99451b44SJordan Rupprecht
12*99451b44SJordan Rupprechtclass ObjCNewSyntaxTestCaseArray(ObjCNewSyntaxTest):
13*99451b44SJordan Rupprecht
14*99451b44SJordan Rupprecht    @skipIf(macos_version=["<", "10.12"])
15*99451b44SJordan Rupprecht    @expectedFailureAll(archs=["i[3-6]86"])
16*99451b44SJordan Rupprecht    def test_read_array(self):
17*99451b44SJordan Rupprecht        self.runToBreakpoint()
18*99451b44SJordan Rupprecht
19*99451b44SJordan Rupprecht        self.expect(
20*99451b44SJordan Rupprecht            "expr --object-description -- immutable_array[0]",
21*99451b44SJordan Rupprecht            VARIABLES_DISPLAYED_CORRECTLY,
22*99451b44SJordan Rupprecht            substrs=["foo"])
23*99451b44SJordan Rupprecht
24*99451b44SJordan Rupprecht        self.expect(
25*99451b44SJordan Rupprecht            "expr --object-description -- mutable_array[0]",
26*99451b44SJordan Rupprecht            VARIABLES_DISPLAYED_CORRECTLY,
27*99451b44SJordan Rupprecht            substrs=["foo"])
28*99451b44SJordan Rupprecht
29*99451b44SJordan Rupprecht    @skipIf(macos_version=["<", "10.12"])
30*99451b44SJordan Rupprecht    @expectedFailureAll(archs=["i[3-6]86"])
31*99451b44SJordan Rupprecht    def test_update_array(self):
32*99451b44SJordan Rupprecht        self.runToBreakpoint()
33*99451b44SJordan Rupprecht
34*99451b44SJordan Rupprecht        self.expect(
35*99451b44SJordan Rupprecht            "expr --object-description -- mutable_array[0] = @\"bar\"",
36*99451b44SJordan Rupprecht            VARIABLES_DISPLAYED_CORRECTLY,
37*99451b44SJordan Rupprecht            substrs=["bar"])
38*99451b44SJordan Rupprecht
39*99451b44SJordan Rupprecht        self.expect(
40*99451b44SJordan Rupprecht            "expr --object-description -- mutable_array[0]",
41*99451b44SJordan Rupprecht            VARIABLES_DISPLAYED_CORRECTLY,
42*99451b44SJordan Rupprecht            substrs=["bar"])
43*99451b44SJordan Rupprecht
44*99451b44SJordan Rupprecht    @skipIf(macos_version=["<", "10.12"])
45*99451b44SJordan Rupprecht    @expectedFailureAll(archs=["i[3-6]86"])
46*99451b44SJordan Rupprecht    def test_array_literal(self):
47*99451b44SJordan Rupprecht        self.runToBreakpoint()
48*99451b44SJordan Rupprecht
49*99451b44SJordan Rupprecht        self.expect(
50*99451b44SJordan Rupprecht            "expr --object-description -- @[ @\"foo\", @\"bar\" ]",
51*99451b44SJordan Rupprecht            VARIABLES_DISPLAYED_CORRECTLY,
52*99451b44SJordan Rupprecht            substrs=[
53*99451b44SJordan Rupprecht                "NSArray",
54*99451b44SJordan Rupprecht                "foo",
55*99451b44SJordan Rupprecht                "bar"])
56