| """ | |
| Test sending SIGINT Process IOHandler | |
| """ | |
| import os | |
| import lldb | |
| from lldbsuite.test.decorators import * | |
| from lldbsuite.test.lldbtest import * | |
| from lldbsuite.test.lldbpexpect import PExpectTest | |
| @requireSignals # no signal support | |
| class TestCase(PExpectTest): | |
| SHARED_BUILD_TESTCASE = False | |
| @skipIf(macos_version=["<", "14.0"], asan=True) | |
| @skipIf(compiler="clang", compiler_version=["<", "11.0"]) | |
| @skipIf(oslist=["linux"], archs=["arm$", "aarch64"]) | |
| def test(self): | |
| self.build(dictionary={"CXX_SOURCES": "cat.cpp"}) | |
| self.launch(executable=self.getBuildArtifact()) | |
| self.child.sendline("process launch") | |
| self.child.expect("Process .* launched") | |
| self.child.sendline("Hello cat") | |
| self.child.expect_exact("read: Hello cat") | |
| self.child.sendintr() | |
| self.child.expect("Process .* stopped") | |
| self.expect_prompt() | |
| self.expect("bt", substrs=["input_copy_loop"]) | |
| self.child.sendline("continue") | |
| self.child.expect("Process .* resuming") | |
| self.child.sendline("Goodbye cat") | |
| self.child.expect_exact("read: Goodbye cat") | |
| self.child.sendeof() | |
| self.child.expect("Process .* exited") | |
| self.expect_prompt() | |