Lines Matching defs:self
23 def qRegisterInfo(self, num):
25 return self.registers[num]
29 def readRegisters(self):
30 return len(self.registers) * 16 * "0"
32 def readRegister(self, register):
35 def test_connect(self):
37 target = self.createTarget("a.yaml")
38 process = self.connect(target)
39 self.assertPacketLogContains(["qProcessInfo", "qfThreadInfo"])
41 def test_attach_fail(self):
46 def qC(self):
49 def qfThreadInfo(self):
53 def vAttach(self, pid):
56 self.server.responder = MyResponder()
58 target = self.dbg.CreateTarget("")
59 process = self.connect(target)
61 self, self.dbg.GetListener(), process, [lldb.eStateConnected]
66 self.assertEqual(error_msg, error.GetCString())
68 def test_launch_fail(self):
71 def qC(self):
74 def qfThreadInfo(self):
78 def A(self, packet):
81 self.server.responder = MyResponder()
83 target = self.createTarget("a.yaml")
84 process = self.connect(target)
86 self, self.dbg.GetListener(), process, [lldb.eStateConnected]
93 self.assertRegex(error.GetCString(), "Cannot launch '.*a': Error 71")
95 def test_launch_rich_error(self):
97 def qC(self):
100 def qfThreadInfo(self):
104 def vRun(self, packet):
107 self.server.responder = MyResponder()
109 target = self.createTarget("a.yaml")
110 process = self.connect(target)
112 self, self.dbg.GetListener(), process, [lldb.eStateConnected]
119 self.assertRegex(error.GetCString(), "Cannot launch '.*a': I'm a teapot")
121 def test_read_registers_using_g_packets(self):
123 self.dbg.HandleCommand(
126 self.addTearDownHook(
127 lambda: self.runCmd(
131 self.server.responder = self.gPacketResponder()
132 target = self.createTarget("a.yaml")
133 process = self.connect(target)
144 self.read_registers(process)
145 print(f"\nPACKET LOG:\n{self.server.responder.packetLog}\n")
148 g_pos = self.server.responder.packetLog.index("g")
150 self.fail("'g' packet not found after fetching registers")
153 second_g = self.server.responder.packetLog.index("g", g_pos)
154 self.fail("Found more than one 'g' packet")
159 self.assertEqual(
164 for p in self.server.responder.packetLog[g_pos:]
170 def test_read_registers_using_p_packets(self):
172 self.dbg.HandleCommand(
175 self.server.responder = self.gPacketResponder()
176 target = self.createTarget("a.yaml")
177 process = self.connect(target)
179 self.read_registers(process)
180 self.assertNotIn("g", self.server.responder.packetLog)
181 self.assertGreater(
182 len([p for p in self.server.responder.packetLog if p.startswith("p")]), 0
185 def test_write_registers_using_P_packets(self):
187 self.server.responder = self.gPacketResponder()
188 target = self.createTarget("a.yaml")
189 process = self.connect(target)
191 self.write_registers(process)
192 self.assertEqual(
193 0, len([p for p in self.server.responder.packetLog if p.startswith("G")])
195 self.assertGreater(
196 len([p for p in self.server.responder.packetLog if p.startswith("P")]), 0
199 def test_write_registers_using_G_packets(self):
202 class MyResponder(self.gPacketResponder):
203 def readRegister(self, register):
207 self.server.responder = MyResponder()
208 target = self.createTarget("a.yaml")
209 process = self.connect(target)
211 self.write_registers(process)
212 self.assertEqual(
213 0, len([p for p in self.server.responder.packetLog if p.startswith("P")])
215 self.assertGreater(
216 len([p for p in self.server.responder.packetLog if p.startswith("G")]), 0
219 def read_registers(self, process):
220 self.for_each_gpr(
221 process, lambda r: self.assertEqual("0x0000000000000000", r.GetValue())
224 def write_registers(self, process):
225 self.for_each_gpr(
229 def for_each_gpr(self, process, operation):
231 self.assertGreater(registers.GetSize(), 0)
234 self.assertGreater(numChildren, 0)
238 def test_launch_A(self):
240 def __init__(self, *args, **kwargs):
241 self.started = False
244 def qC(self):
245 if self.started:
250 def qfThreadInfo(self):
251 if self.started:
256 def qsThreadInfo(self):
259 def A(self, packet):
260 self.started = True
263 def qLaunchSuccess(self):
264 if self.started:
268 self.server.responder = MyResponder()
270 target = self.createTarget("a.yaml")
272 exe_path = self.getBuildArtifact("a").replace(os.path.sep, "/")
274 process = self.connect(target)
276 self, self.dbg.GetListener(), process, [lldb.eStateConnected]
291 self.assertTrue(process, PROCESS_IS_VALID)
292 self.assertEqual(process.GetProcessID(), 16)
294 self.assertPacketLogContains(
301 def test_launch_vRun(self):
303 def __init__(self, *args, **kwargs):
304 self.started = False
307 def qC(self):
308 if self.started:
313 def qfThreadInfo(self):
314 if self.started:
319 def qsThreadInfo(self):
322 def vRun(self, packet):
323 self.started = True
326 def A(self, packet):
329 self.server.responder = MyResponder()
331 target = self.createTarget("a.yaml")
333 exe_path = self.getBuildArtifact("a").replace(os.path.sep, "/")
335 process = self.connect(target)
337 self, self.dbg.GetListener(), process, [lldb.eStateConnected]
352 self.assertTrue(process, PROCESS_IS_VALID)
353 self.assertEqual(process.GetProcessID(), 16)
355 self.assertPacketLogContains(
359 def test_launch_QEnvironment(self):
361 def qC(self):
364 def qfThreadInfo(self):
367 def vRun(self, packet):
368 self.started = True
371 self.server.responder = MyResponder()
373 target = self.createTarget("a.yaml")
374 process = self.connect(target)
376 self, self.dbg.GetListener(), process, [lldb.eStateConnected]
399 self.assertPacketLogContains(
410 def test_launch_QEnvironmentHexEncoded_only(self):
412 def qC(self):
415 def qfThreadInfo(self):
418 def vRun(self, packet):
419 self.started = True
422 def QEnvironment(self, packet):
425 self.server.responder = MyResponder()
427 target = self.createTarget("a.yaml")
428 process = self.connect(target)
430 self, self.dbg.GetListener(), process, [lldb.eStateConnected]
453 self.assertPacketLogContains(
464 def test_detach_no_multiprocess(self):
466 def __init__(self):
468 self.detached = None
470 def qfThreadInfo(self):
473 def D(self, packet):
474 self.detached = packet
477 self.server.responder = MyResponder()
478 target = self.dbg.CreateTarget("")
479 process = self.connect(target)
481 self.assertEqual(self.server.responder.detached, "D")
483 def test_detach_pid(self):
485 def __init__(self, test_case):
487 self.test_case = test_case
488 self.detached = None
490 def qSupported(self, client_supported):
491 self.test_case.assertIn("multiprocess+", client_supported)
494 def qfThreadInfo(self):
497 def D(self, packet):
498 self.detached = packet
501 self.server.responder = MyResponder(self)
502 target = self.dbg.CreateTarget("")
503 process = self.connect(target)
505 self.assertRegex(self.server.responder.detached, r"D;0*400")
507 def test_signal_gdb(self):
509 def qSupported(self, client_supported):
512 def haltReason(self):
515 def cont(self):
516 return self.haltReason()
518 self.server.responder = MyResponder()
520 self.runCmd("platform select remote-linux")
521 target = self.createTarget("a.yaml")
522 process = self.connect(target)
524 self.assertEqual(process.threads[0].GetStopReason(), lldb.eStopReasonSignal)
525 self.assertEqual(process.threads[0].GetStopDescription(100), "signal SIGBUS")
527 def test_signal_lldb_old(self):
529 def qSupported(self, client_supported):
532 def qHostInfo(self):
535 def QThreadSuffixSupported(self):
538 def haltReason(self):
541 def cont(self):
542 return self.haltReason()
544 self.server.responder = MyResponder()
546 self.runCmd("platform select remote-linux")
547 target = self.createTarget("a.yaml")
548 process = self.connect(target)
550 self.assertEqual(process.threads[0].GetStopReason(), lldb.eStopReasonSignal)
551 self.assertEqual(process.threads[0].GetStopDescription(100), "signal SIGUSR1")
553 def test_signal_lldb(self):
555 def qSupported(self, client_supported):
558 def qHostInfo(self):
561 def haltReason(self):
564 def cont(self):
565 return self.haltReason()
567 self.server.responder = MyResponder()
569 self.runCmd("platform select remote-linux")
570 target = self.createTarget("a.yaml")
571 process = self.connect(target)
573 self.assertEqual(process.threads[0].GetStopReason(), lldb.eStopReasonSignal)
574 self.assertEqual(process.threads[0].GetStopDescription(100), "signal SIGUSR1")
576 def do_siginfo_test(self, platform, target_yaml, raw_data, expected):
578 def qSupported(self, client_supported):
581 def qXferRead(self, obj, annex, offset, length):
587 def haltReason(self):
590 def cont(self):
591 return self.haltReason()
593 self.server.responder = MyResponder()
595 self.runCmd("platform select " + platform)
596 target = self.createTarget(target_yaml)
597 process = self.connect(target)
600 self.assertSuccess(siginfo.GetError())
603 self.assertEqual(
607 def test_siginfo_linux_amd64(self):
627 self.do_siginfo_test("remote-linux", "basic_eh_frame.yaml", data, expected)
629 def test_siginfo_linux_i386(self):
647 self.do_siginfo_test("remote-linux", "basic_eh_frame-i386.yaml", data, expected)
649 def test_siginfo_freebsd_amd64(self):
669 self.do_siginfo_test("remote-freebsd", "basic_eh_frame.yaml", data, expected)