"""
Tests that importing ObjC modules in a non-ObjC target doesn't crash LLDB.
"""

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


class TestCase(TestBase):
    def test(self):
        self.build()
        lldbutil.run_to_source_breakpoint(
            self, "// break here", lldb.SBFileSpec("main.c")
        )

        # Import foundation to get some ObjC types.
        self.expect("expr --lang objc -- @import Foundation")
        # Do something with NSString (which requires special handling when
        # preparing to run in the target). The expression most likely can't
        # be prepared to run in the target but it should at least not crash LLDB.
        self.expect(
            'expr --lang objc -- [NSString stringWithFormat:@"%d", 1];',
            error=True,
            substrs=[
                "Rewriting an Objective-C constant string requires CFStringCreateWithBytes"
            ],
        )
