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