72 lines · python
1import lldb2from lldbsuite.test.decorators import *3from lldbsuite.test.lldbtest import *4from lldbsuite.test import lldbutil5 6 7class TestCase(TestBase):8 def common_setup(self):9 self.build()10 lldbutil.run_to_source_breakpoint(11 self, "// break here", lldb.SBFileSpec("main.cpp")12 )13 14 def test_call_on_base(self):15 self.common_setup()16 self.expect_expr("base_with_dtor.foo()", result_type="int", result_value="1")17 self.expect_expr("base_without_dtor.foo()", result_type="int", result_value="2")18 19 def test_call_on_derived(self):20 self.common_setup()21 self.expect_expr("derived_with_dtor.foo()", result_type="int", result_value="3")22 self.expect_expr(23 "derived_without_dtor.foo()", result_type="int", result_value="4"24 )25 self.expect_expr(26 "derived_with_base_dtor.foo()", result_type="int", result_value="5"27 )28 self.expect_expr(29 "derived_with_dtor_but_no_base_dtor.foo()",30 result_type="int",31 result_value="6",32 )33 34 def test_call_on_derived_as_base(self):35 self.common_setup()36 self.expect_expr(37 "derived_with_dtor_as_base.foo()", result_type="int", result_value="3"38 )39 self.expect_expr(40 "derived_without_as_base.foo()", result_type="int", result_value="4"41 )42 self.expect_expr(43 "derived_with_base_dtor_as_base.foo()", result_type="int", result_value="5"44 )45 self.expect_expr(46 "derived_with_dtor_but_no_base_dtor_as_base.foo()",47 result_type="int",48 result_value="6",49 )50 51 def test_call_overloaded(self):52 self.common_setup()53 self.expect(54 "expr derived_with_overload.foo()",55 error=True,56 substrs=["too few arguments to function call, expected 1, have 0"],57 )58 self.expect_expr(59 "derived_with_overload.foo(1)", result_type="int", result_value="7"60 )61 self.expect_expr(62 "derived_with_overload_and_using.foo(1)",63 result_type="int",64 result_value="8",65 )66 # FIXME: It seems the using declaration doesn't import the overload from the base class.67 self.expect(68 "expr derived_with_overload_and_using.foo()",69 error=True,70 substrs=["too few arguments to function call, expected 1, have 0"],71 )72