xref: /llvm-project/lldb/test/API/lang/c/flexible-array-members/TestCFlexibleArrayMembers.py (revision 2238dcc39358353cac21df75c3c3286ab20b8f53)
135870c44SPavel Labath"""
235870c44SPavel LabathTests C99's flexible array members.
335870c44SPavel Labath"""
435870c44SPavel Labath
535870c44SPavel Labathimport lldb
635870c44SPavel Labathfrom lldbsuite.test.decorators import *
735870c44SPavel Labathfrom lldbsuite.test.lldbtest import *
835870c44SPavel Labathfrom lldbsuite.test import lldbutil
935870c44SPavel Labath
1035870c44SPavel Labath
11*2238dcc3SJonas Devlieghereclass TestCase(TestBase):
1235870c44SPavel Labath    @no_debug_info_test
1335870c44SPavel Labath    def test(self):
1435870c44SPavel Labath        self.build()
15*2238dcc3SJonas Devlieghere        lldbutil.run_to_source_breakpoint(
16*2238dcc3SJonas Devlieghere            self, "// break here", lldb.SBFileSpec("main.c")
17*2238dcc3SJonas Devlieghere        )
1835870c44SPavel Labath
1935870c44SPavel Labath        self.expect_var_path("c->flexible", type="char[]", summary='"contents"')
2031c7165aSPavel Labath        # self.expect_var_path("sc->flexible", type="signed char[]", summary='"contents"')
21*2238dcc3SJonas Devlieghere        self.expect_var_path(
22*2238dcc3SJonas Devlieghere            "uc->flexible", type="unsigned char[]", summary='"contents"'
23*2238dcc3SJonas Devlieghere        )
2435870c44SPavel Labath        # TODO: Make this work
25*2238dcc3SJonas Devlieghere        self.expect("expr c->flexible", error=True, substrs=["incomplete", "char[]"])
26*2238dcc3SJonas Devlieghere        self.expect(
27*2238dcc3SJonas Devlieghere            "expr sc->flexible", error=True, substrs=["incomplete", "signed char[]"]
28*2238dcc3SJonas Devlieghere        )
29*2238dcc3SJonas Devlieghere        self.expect(
30*2238dcc3SJonas Devlieghere            "expr uc->flexible", error=True, substrs=["incomplete", "unsigned char[]"]
31*2238dcc3SJonas Devlieghere        )
32