17e9bab6aSAdrian Prantlimport lldb 27e9bab6aSAdrian Prantlfrom lldbsuite.test.lldbtest import * 37e9bab6aSAdrian Prantlfrom lldbsuite.test.decorators import * 47e9bab6aSAdrian Prantlimport lldbsuite.test.lldbutil as lldbutil 57e9bab6aSAdrian Prantlimport os 67e9bab6aSAdrian Prantl 77e9bab6aSAdrian Prantl 87e9bab6aSAdrian Prantlclass TestMacCatalyst(TestBase): 97e9bab6aSAdrian Prantl @skipIf(macos_version=["<", "10.15"]) 107e9bab6aSAdrian Prantl @skipUnlessDarwin 117e9bab6aSAdrian Prantl @skipIfDarwinEmbedded 127e9bab6aSAdrian Prantl def test_macabi(self): 137e9bab6aSAdrian Prantl """Test the x86_64-apple-ios-macabi target linked against a macos dylib""" 147e9bab6aSAdrian Prantl self.build() 152238dcc3SJonas Devlieghere log = self.getBuildArtifact("packets.log") 167e9bab6aSAdrian Prantl self.expect("log enable gdb-remote packets -f " + log) 172238dcc3SJonas Devlieghere lldbutil.run_to_source_breakpoint(self, "break here", lldb.SBFileSpec("main.c")) 182238dcc3SJonas Devlieghere self.expect( 192238dcc3SJonas Devlieghere "image list -t -b", 202238dcc3SJonas Devlieghere patterns=[self.getArchitecture() + r".*-apple-ios.*-macabi a\.out"], 212238dcc3SJonas Devlieghere ) 22010d7a38SDave Lee self.expect("fr v s", substrs=["Hello macCatalyst"]) 2340766642SDave Lee self.expect("expression s", substrs=["Hello macCatalyst"]) 247e9bab6aSAdrian Prantl self.check_debugserver(log) 257e9bab6aSAdrian Prantl 267e9bab6aSAdrian Prantl def check_debugserver(self, log): 277e9bab6aSAdrian Prantl """scan the debugserver packet log""" 287e9bab6aSAdrian Prantl process_info = lldbutil.packetlog_get_process_info(log) 292238dcc3SJonas Devlieghere self.assertIn("ostype", process_info) 30*80fcecb1SJonas Devlieghere self.assertEqual(process_info["ostype"], "maccatalyst") 317e9bab6aSAdrian Prantl 327e9bab6aSAdrian Prantl aout_info = None 337e9bab6aSAdrian Prantl dylib_info = lldbutil.packetlog_get_dylib_info(log) 342238dcc3SJonas Devlieghere for image in dylib_info["images"]: 352238dcc3SJonas Devlieghere if image["pathname"].endswith("a.out"): 367e9bab6aSAdrian Prantl aout_info = image 377e9bab6aSAdrian Prantl self.assertTrue(aout_info) 38*80fcecb1SJonas Devlieghere self.assertEqual(aout_info["min_version_os_name"], "maccatalyst") 39