1*99451b44SJordan Rupprecht"""
2*99451b44SJordan RupprechtTest that we correctly handle inline namespaces.
3*99451b44SJordan Rupprecht"""
4*99451b44SJordan Rupprecht
5*99451b44SJordan Rupprechtimport lldb
6*99451b44SJordan Rupprecht
7*99451b44SJordan Rupprechtfrom lldbsuite.test.decorators import *
8*99451b44SJordan Rupprechtfrom lldbsuite.test.lldbtest import *
9*99451b44SJordan Rupprechtfrom lldbsuite.test import lldbutil
10*99451b44SJordan Rupprecht
11*99451b44SJordan Rupprecht
12*99451b44SJordan Rupprechtclass TestInlineNamespace(TestBase):
13*99451b44SJordan Rupprecht
14*99451b44SJordan Rupprecht    def test(self):
15*99451b44SJordan Rupprecht        self.build()
16*99451b44SJordan Rupprecht
17*99451b44SJordan Rupprecht        lldbutil.run_to_source_breakpoint(self,
18*99451b44SJordan Rupprecht            "// Set break point at this line.", lldb.SBFileSpec("main.cpp"))
19*99451b44SJordan Rupprecht
20*99451b44SJordan Rupprecht        # The 'A::B::f' function must be found via 'A::f' as 'B' is an inline
21*99451b44SJordan Rupprecht        # namespace.
22*99451b44SJordan Rupprecht        self.expect_expr("A::f()", result_type="int", result_value="3")
23*99451b44SJordan Rupprecht        # But we should still find the function when we pretend the inline
24*99451b44SJordan Rupprecht        # namespace is not inline.
25*99451b44SJordan Rupprecht        self.expect_expr("A::B::f()", result_type="int", result_value="3")
26