"""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 ObjCNewSyntaxTestCaseLiteral(ObjCNewSyntaxTest): @skipIf(macos_version=["<", "10.12"]) @expectedFailureAll(archs=["i[3-6]86"]) def test_char_literal(self): self.runToBreakpoint() self.expect( "expr --object-description -- @'a'", VARIABLES_DISPLAYED_CORRECTLY, substrs=[str(ord("a"))], ) @skipIf(macos_version=["<", "10.12"]) @expectedFailureAll(archs=["i[3-6]86"]) def test_integer_literals(self): self.runToBreakpoint() self.expect( "expr --object-description -- @1", VARIABLES_DISPLAYED_CORRECTLY, substrs=["1"], ) self.expect( "expr --object-description -- @1l", VARIABLES_DISPLAYED_CORRECTLY, substrs=["1"], ) self.expect( "expr --object-description -- @1ul", VARIABLES_DISPLAYED_CORRECTLY, substrs=["1"], ) self.expect( "expr --object-description -- @1ll", VARIABLES_DISPLAYED_CORRECTLY, substrs=["1"], ) self.expect( "expr --object-description -- @1ull", VARIABLES_DISPLAYED_CORRECTLY, substrs=["1"], ) @skipIf(macos_version=["<", "10.12"]) @expectedFailureAll(archs=["i[3-6]86"]) def test_float_literal(self): self.runToBreakpoint() self.runCmd("settings set target.prefer-dynamic-value no-dynamic-values") self.expect( "expr -- @123.45", VARIABLES_DISPLAYED_CORRECTLY, substrs=["NSNumber", "123.45"], ) @skipIf(macos_version=["<", "10.12"]) @expectedFailureAll(archs=["i[3-6]86"]) def test_expressions_in_literals(self): self.runToBreakpoint() self.runCmd("settings set target.prefer-dynamic-value no-dynamic-values") self.expect( "expr --object-description -- @( 1 + 3 )", VARIABLES_DISPLAYED_CORRECTLY, substrs=["4"], ) self.expect( 'expr -- @((char*)"Hello world" + 6)', VARIABLES_DISPLAYED_CORRECTLY, substrs=["NSString", "world"], )