import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil

class TestCase(TestBase):

    mydir = TestBase.compute_mydir(__file__)

    @skipUnlessDarwin
    # LLDB ends up calling the user-defined function (but at least doesn't
    # crash).
    @expectedFailureDarwin
    def test(self):
        """
        Tests LLDB's behaviour if the user defines their own conflicting
        objc_copyRealizedClassList_nolock function.
        """

        self.build()
        lldbutil.run_to_source_breakpoint(self, "// break here", lldb.SBFileSpec("main.m"))

        # Get the (dynamic) type of our 'id' variable so that our Objective-C
        # runtime information is updated.
        str_val = self.expect_expr("custom_class")
        dyn_val = str_val.GetDynamicValue(lldb.eDynamicCanRunTarget)

        # We should have retrieved the proper class list even in presence of
        # the user-defined function.
        self.assertEqual(dyn_val.GetTypeName(), "CustomClass *")
