xref: /llvm-project/lldb/test/API/commands/expression/namespace-alias/TestInlineNamespaceAlias.py (revision 2238dcc39358353cac21df75c3c3286ab20b8f53)
16e10e6cbSMichael Buch"""
26e10e6cbSMichael BuchTest that we correctly handle namespace
36e10e6cbSMichael Buchexpression evaluation through namespace
46e10e6cbSMichael Buchaliases.
56e10e6cbSMichael Buch"""
66e10e6cbSMichael Buch
76e10e6cbSMichael Buchimport lldb
86e10e6cbSMichael Buch
96e10e6cbSMichael Buchfrom lldbsuite.test.decorators import *
106e10e6cbSMichael Buchfrom lldbsuite.test.lldbtest import *
116e10e6cbSMichael Buchfrom lldbsuite.test import lldbutil
126e10e6cbSMichael Buch
13*2238dcc3SJonas Devlieghere
146e10e6cbSMichael Buchclass TestInlineNamespace(TestBase):
15*2238dcc3SJonas Devlieghere    @skipIf(compiler="clang", compiler_version=["<", "16.0"])
1660a7188cSMichael Buch    def test(self):
176e10e6cbSMichael Buch        self.build()
186e10e6cbSMichael Buch
19*2238dcc3SJonas Devlieghere        lldbutil.run_to_source_breakpoint(
20*2238dcc3SJonas Devlieghere            self, "return A::B::C::a", lldb.SBFileSpec("main.cpp")
21*2238dcc3SJonas Devlieghere        )
226e10e6cbSMichael Buch
236e10e6cbSMichael Buch        self.expect_expr("A::C::a", result_type="int", result_value="-1")
246e10e6cbSMichael Buch        self.expect_expr("A::D::a", result_type="int", result_value="-1")
256e10e6cbSMichael Buch
266e10e6cbSMichael Buch        self.expect_expr("A::C::func()", result_type="int", result_value="0")
276e10e6cbSMichael Buch        self.expect_expr("A::D::func()", result_type="int", result_value="0")
286e10e6cbSMichael Buch
296e10e6cbSMichael Buch        self.expect_expr("E::C::a", result_type="int", result_value="-1")
306e10e6cbSMichael Buch        self.expect_expr("E::D::a", result_type="int", result_value="-1")
316e10e6cbSMichael Buch        self.expect_expr("F::a", result_type="int", result_value="-1")
326e10e6cbSMichael Buch        self.expect_expr("G::a", result_type="int", result_value="-1")
33