brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.7 KiB · 9753104 Raw
48 lines · python
1import lldb2import unittest3from lldbsuite.test.lldbtest import *4from lldbsuite.test.decorators import *5from lldbsuite.test.gdbclientutils import *6from lldbsuite.test.lldbgdbclient import GDBRemoteTestBase7 8 9class TestMultiprocess(GDBRemoteTestBase):10    def test_qfThreadInfo(self):11        class MyResponder(MockGDBServerResponder):12            def qfThreadInfo(self):13                return "mp400.10200,p400.10204,p401.10300,p400.10208"14 15        self.server.responder = MyResponder()16        target = self.dbg.CreateTarget("")17        if self.TraceOn():18            self.runCmd("log enable gdb-remote packets")19            self.addTearDownHook(lambda: self.runCmd("log disable gdb-remote packets"))20        process = self.connect(target)21        self.assertEqual(process.id, 0x400)22        self.assertEqual(23            [process.threads[i].id for i in range(process.num_threads)],24            [0x10200, 0x10204, 0x10208],25        )26 27    def test_stop_reason(self):28        class MyResponder(MockGDBServerResponder):29            def qfThreadInfo(self):30                return "mp400.10200,p400.10204"31 32            def cont(self):33                return "S02thread:p400.10200;"34 35        self.server.responder = MyResponder()36        target = self.dbg.CreateTarget("")37        if self.TraceOn():38            self.runCmd("log enable gdb-remote packets")39            self.addTearDownHook(lambda: self.runCmd("log disable gdb-remote packets"))40        process = self.connect(target)41        process.Continue()42        self.assertEqual(43            process.GetThreadByID(0x10200).stop_reason, lldb.eStopReasonSignal44        )45        self.assertEqual(46            process.GetThreadByID(0x10204).stop_reason, lldb.eStopReasonNone47        )48