xref: /llvm-project/lldb/test/API/macosx/macCatalyst/TestMacCatalyst.py (revision 80fcecb13c388ff087a27a4b0e7ca3dd8c98eaa4)
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