50 lines · python
1import lldb2from lldbsuite.test.lldbtest import *3from lldbsuite.test.decorators import *4import lldbsuite.test.lldbutil as lldbutil5import os6 7 8class TestMacCatalystAppWithMacOSFramework(TestBase):9 @skipIf(macos_version=["<", "10.15"])10 @skipUnlessDarwin11 @skipIfDarwinEmbedded12 # There is a Clang driver change missing on llvm.org.13 @expectedFailureAll(bugnumber="rdar://problem/54986190>")14 def test(self):15 """Test the x86_64-apple-ios-macabi target linked against a macos dylib"""16 self.build()17 log = self.getBuildArtifact("packets.log")18 self.expect("log enable gdb-remote packets -f " + log)19 lldbutil.run_to_source_breakpoint(self, "break here", lldb.SBFileSpec("main.c"))20 arch = self.getArchitecture()21 self.expect(22 "image list -t -b",23 patterns=[24 arch + r".*-apple-ios.*-macabi a\.out",25 arch + r".*-apple-macosx.* libfoo.dylib[^(]",26 ],27 )28 self.expect("fr v s", "Hello macCatalyst")29 self.expect("expression s", "Hello macCatalyst")30 self.check_debugserver(log)31 32 def check_debugserver(self, log):33 """scan the debugserver packet log"""34 process_info = lldbutil.packetlog_get_process_info(log)35 self.assertIn("ostype", process_info)36 self.assertEqual(process_info["ostype"], "maccatalyst")37 38 aout_info = None39 libfoo_info = None40 dylib_info = lldbutil.packetlog_get_dylib_info(log)41 for image in dylib_info["images"]:42 if image["pathname"].endswith("a.out"):43 aout_info = image44 if image["pathname"].endswith("libfoo.dylib"):45 libfoo_info = image46 self.assertTrue(aout_info)47 self.assertTrue(libfoo_info)48 self.assertEqual(aout_info["min_version_os_name"], "maccatalyst")49 self.assertEqual(libfoo_info["min_version_os_name"], "macosx")50