32 lines · python
1"""2Test lldb's handling of job control signals (SIGTSTP, SIGCONT).3"""4 5from lldbsuite.test.decorators import *6from lldbsuite.test.lldbtest import *7from lldbsuite.test.lldbpexpect import PExpectTest8 9 10class JobControlTest(PExpectTest):11 @skipIf(macos_version=["<", "14.0"], asan=True)12 @skipIf(oslist=["linux"], archs=["arm$", "aarch64"])13 def test_job_control(self):14 def post_spawn():15 self.child.expect("PID=([0-9]+)")16 self.lldb_pid = int(self.child.match[1])17 18 run_under = [sys.executable, self.getSourcePath("shell.py")]19 self.launch(run_under=run_under, post_spawn=post_spawn)20 21 os.kill(self.lldb_pid, signal.SIGTSTP)22 self.child.expect("STATUS=([0-9]+)")23 status = int(self.child.match[1])24 25 self.assertTrue(os.WIFSTOPPED(status))26 self.assertEqual(os.WSTOPSIG(status), signal.SIGTSTP)27 28 os.kill(self.lldb_pid, signal.SIGCONT)29 30 self.child.sendline("quit")31 self.child.expect("RETURNCODE=0")32