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 ObjCNewSyntaxTestCaseDictionary(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_dictionary(self):
17*99451b44SJordan Rupprecht        self.runToBreakpoint()
18*99451b44SJordan Rupprecht
19*99451b44SJordan Rupprecht        self.expect(
20*99451b44SJordan Rupprecht            "expr --object-description -- immutable_dictionary[@\"key\"]",
21*99451b44SJordan Rupprecht            VARIABLES_DISPLAYED_CORRECTLY,
22*99451b44SJordan Rupprecht            substrs=["value"])
23*99451b44SJordan Rupprecht
24*99451b44SJordan Rupprecht        self.expect(
25*99451b44SJordan Rupprecht            "expr --object-description -- mutable_dictionary[@\"key\"]",
26*99451b44SJordan Rupprecht            VARIABLES_DISPLAYED_CORRECTLY,
27*99451b44SJordan Rupprecht            substrs=["value"])
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_dictionary(self):
32*99451b44SJordan Rupprecht        self.runToBreakpoint()
33*99451b44SJordan Rupprecht
34*99451b44SJordan Rupprecht        self.expect(
35*99451b44SJordan Rupprecht            "expr --object-description -- mutable_dictionary[@\"key\"] = @\"object\"",
36*99451b44SJordan Rupprecht            VARIABLES_DISPLAYED_CORRECTLY,
37*99451b44SJordan Rupprecht            substrs=["object"])
38*99451b44SJordan Rupprecht
39*99451b44SJordan Rupprecht        self.expect(
40*99451b44SJordan Rupprecht            "expr --object-description -- mutable_dictionary[@\"key\"]",
41*99451b44SJordan Rupprecht            VARIABLES_DISPLAYED_CORRECTLY,
42*99451b44SJordan Rupprecht            substrs=["object"])
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_dictionary_literal(self):
47*99451b44SJordan Rupprecht        self.runToBreakpoint()
48*99451b44SJordan Rupprecht
49*99451b44SJordan Rupprecht        self.expect(
50*99451b44SJordan Rupprecht            "expr --object-description -- @{ @\"key\" : @\"object\" }",
51*99451b44SJordan Rupprecht            VARIABLES_DISPLAYED_CORRECTLY,
52*99451b44SJordan Rupprecht            substrs=[
53*99451b44SJordan Rupprecht                "key",
54*99451b44SJordan Rupprecht                "object"])
55