xref: /llvm-project/lldb/test/API/lang/objc/objc-new-syntax/TestObjCNewSyntaxLiteral.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 ObjCNewSyntaxTestCaseLiteral(ObjCNewSyntaxTest):
13    @skipIf(macos_version=["<", "10.12"])
14    @expectedFailureAll(archs=["i[3-6]86"])
15    def test_char_literal(self):
16        self.runToBreakpoint()
17
18        self.expect(
19            "expr --object-description -- @'a'",
20            VARIABLES_DISPLAYED_CORRECTLY,
21            substrs=[str(ord("a"))],
22        )
23
24    @skipIf(macos_version=["<", "10.12"])
25    @expectedFailureAll(archs=["i[3-6]86"])
26    def test_integer_literals(self):
27        self.runToBreakpoint()
28
29        self.expect(
30            "expr --object-description -- @1",
31            VARIABLES_DISPLAYED_CORRECTLY,
32            substrs=["1"],
33        )
34
35        self.expect(
36            "expr --object-description -- @1l",
37            VARIABLES_DISPLAYED_CORRECTLY,
38            substrs=["1"],
39        )
40
41        self.expect(
42            "expr --object-description -- @1ul",
43            VARIABLES_DISPLAYED_CORRECTLY,
44            substrs=["1"],
45        )
46
47        self.expect(
48            "expr --object-description -- @1ll",
49            VARIABLES_DISPLAYED_CORRECTLY,
50            substrs=["1"],
51        )
52
53        self.expect(
54            "expr --object-description -- @1ull",
55            VARIABLES_DISPLAYED_CORRECTLY,
56            substrs=["1"],
57        )
58
59    @skipIf(macos_version=["<", "10.12"])
60    @expectedFailureAll(archs=["i[3-6]86"])
61    def test_float_literal(self):
62        self.runToBreakpoint()
63
64        self.runCmd("settings set target.prefer-dynamic-value no-dynamic-values")
65
66        self.expect(
67            "expr -- @123.45",
68            VARIABLES_DISPLAYED_CORRECTLY,
69            substrs=["NSNumber", "123.45"],
70        )
71
72    @skipIf(macos_version=["<", "10.12"])
73    @expectedFailureAll(archs=["i[3-6]86"])
74    def test_expressions_in_literals(self):
75        self.runToBreakpoint()
76
77        self.runCmd("settings set target.prefer-dynamic-value no-dynamic-values")
78
79        self.expect(
80            "expr --object-description -- @( 1 + 3 )",
81            VARIABLES_DISPLAYED_CORRECTLY,
82            substrs=["4"],
83        )
84        self.expect(
85            'expr -- @((char*)"Hello world" + 6)',
86            VARIABLES_DISPLAYED_CORRECTLY,
87            substrs=["NSString", "world"],
88        )
89