xref: /llvm-project/lldb/test/API/lang/objc/objc-new-syntax/TestObjCNewSyntaxDictionary.py (revision 2238dcc39358353cac21df75c3c3286ab20b8f53)
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 ObjCNewSyntaxTestCaseDictionary(ObjCNewSyntaxTest):
13    @skipIf(macos_version=["<", "10.12"])
14    @expectedFailureAll(archs=["i[3-6]86"])
15    def test_read_dictionary(self):
16        self.runToBreakpoint()
17
18        self.expect(
19            'expr --object-description -- immutable_dictionary[@"key"]',
20            VARIABLES_DISPLAYED_CORRECTLY,
21            substrs=["value"],
22        )
23
24        self.expect(
25            'expr --object-description -- mutable_dictionary[@"key"]',
26            VARIABLES_DISPLAYED_CORRECTLY,
27            substrs=["value"],
28        )
29
30    @skipIf(macos_version=["<", "10.12"])
31    @expectedFailureAll(archs=["i[3-6]86"])
32    def test_update_dictionary(self):
33        self.runToBreakpoint()
34
35        self.expect(
36            'expr --object-description -- mutable_dictionary[@"key"] = @"object"',
37            VARIABLES_DISPLAYED_CORRECTLY,
38            substrs=["object"],
39        )
40
41        self.expect(
42            'expr --object-description -- mutable_dictionary[@"key"]',
43            VARIABLES_DISPLAYED_CORRECTLY,
44            substrs=["object"],
45        )
46
47    @skipIf(macos_version=["<", "10.12"])
48    @expectedFailureAll(archs=["i[3-6]86"])
49    def test_dictionary_literal(self):
50        self.runToBreakpoint()
51
52        self.expect(
53            'expr --object-description -- @{ @"key" : @"object" }',
54            VARIABLES_DISPLAYED_CORRECTLY,
55            substrs=["key", "object"],
56        )
57