88 lines · python
1import lldb2from lldbsuite.test.lldbtest import *3from lldbsuite.test.decorators import *4from lldbsuite.test.gdbclientutils import *5from lldbsuite.test.lldbgdbclient import GDBRemoteTestBase6 7 8class TestIOSSimulator(GDBRemoteTestBase):9 10 """11 Test that an ios simulator process is recognized as such.12 """13 14 class MyResponder(MockGDBServerResponder):15 def __init__(self, host, process):16 self.host_ostype = host17 self.process_ostype = process18 MockGDBServerResponder.__init__(self)19 20 def respond(self, packet):21 if packet == "qProcessInfo":22 return self.qProcessInfo()23 return MockGDBServerResponder.respond(self, packet)24 25 def qHostInfo(self):26 return (27 "cputype:16777223;cpusubtype:8;ostype:%s;vendor:apple;os_version:10.15.4;maccatalyst_version:13.4;endian:little;ptrsize:8;"28 % self.host_ostype29 )30 31 def qProcessInfo(self):32 return (33 "pid:a860;parent-pid:d2a0;real-uid:1f5;real-gid:14;effective-uid:1f5;effective-gid:14;cputype:1000007;cpusubtype:8;ptrsize:8;ostype:%s;vendor:apple;endian:little;"34 % self.process_ostype35 )36 37 def vCont(self):38 return "vCont;"39 40 def platform_test(self, host, process, expected_triple):41 self.server.responder = self.MyResponder(host, process)42 if self.TraceOn():43 self.runCmd("log enable gdb-remote packets")44 self.addTearDownHook(lambda: self.runCmd("log disable gdb-remote packets"))45 46 target = self.dbg.CreateTargetWithFileAndArch(None, None)47 process = self.connect(target)48 triple = target.GetTriple()49 self.assertEqual(triple, expected_triple)50 51 @skipIfRemote52 def test_macos(self):53 self.platform_test(54 host="macosx", process="macosx", expected_triple="x86_64h-apple-macosx-"55 )56 57 @skipIfRemote58 def test_ios_sim(self):59 self.platform_test(60 host="macosx",61 process="iossimulator",62 expected_triple="x86_64h-apple-ios-simulator",63 )64 65 @skipIfRemote66 def test_catalyst(self):67 self.platform_test(68 host="macosx",69 process="maccatalyst",70 expected_triple="x86_64h-apple-ios-macabi",71 )72 73 @skipIfRemote74 def test_tvos_sim(self):75 self.platform_test(76 host="macosx",77 process="tvossimulator",78 expected_triple="x86_64h-apple-tvos-simulator",79 )80 81 @skipIfRemote82 def test_watchos_sim(self):83 self.platform_test(84 host="macosx",85 process="watchossimulator",86 expected_triple="x86_64h-apple-watchos-simulator",87 )88