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