"""Test that the Objective-C syntax for dictionary/array literals and indexing works"""
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
from ObjCNewSyntaxTest import ObjCNewSyntaxTest
class ObjCNewSyntaxTestCaseDictionary(ObjCNewSyntaxTest):
@skipIf(macos_version=["<", "10.12"])
@expectedFailureAll(archs=["i[3-6]86"])
def test_read_dictionary(self):
self.runToBreakpoint()
self.expect(
'expr --object-description -- immutable_dictionary[@"key"]',
VARIABLES_DISPLAYED_CORRECTLY,
substrs=["value"],
)
self.expect(
'expr --object-description -- mutable_dictionary[@"key"]',
VARIABLES_DISPLAYED_CORRECTLY,
substrs=["value"],
)
@skipIf(macos_version=["<", "10.12"])
@expectedFailureAll(archs=["i[3-6]86"])
def test_update_dictionary(self):
self.runToBreakpoint()
self.expect(
'expr --object-description -- mutable_dictionary[@"key"] = @"object"',
VARIABLES_DISPLAYED_CORRECTLY,
substrs=["object"],
)
self.expect(
'expr --object-description -- mutable_dictionary[@"key"]',
VARIABLES_DISPLAYED_CORRECTLY,
substrs=["object"],
)
@skipIf(macos_version=["<", "10.12"])
@expectedFailureAll(archs=["i[3-6]86"])
def test_dictionary_literal(self):
self.runToBreakpoint()
self.expect(
'expr --object-description -- @{ @"key" : @"object" }',
VARIABLES_DISPLAYED_CORRECTLY,
substrs=["key", "object"],
)