"""
They may be cases where an expression will import SourceLocation and if the
SourceLocation ends up with a FileID that is a built-in we need to copy that
buffer over correctly.
"""


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


class TestImportBuiltinFileID(TestBase):
    @skipIfDarwinEmbedded
    @add_test_categories(["gmodules", "objc"])
    def test_import_builtin_fileid(self):
        self.build()

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

        self.expect(
            "expr int (*DBG_CGImageGetRenderingIntent)(void *) = ((int (*)(void *))CGImageGetRenderingIntent); DBG_CGImageGetRenderingIntent((void *)0x00000000000000);",
            substrs=["$0 = 0"],
        )
