From 376688ab9f180eb4f4f70a2cf5ebd5d578552f69 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 13 Jul 2022 22:32:25 +0530 Subject: [PATCH] Add a test for SIGTSTP via ctrl-z --- kitty_tests/prewarm.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/kitty_tests/prewarm.py b/kitty_tests/prewarm.py index fbbfdf82a..dc211920f 100644 --- a/kitty_tests/prewarm.py +++ b/kitty_tests/prewarm.py @@ -36,7 +36,12 @@ def socket_child_main(exit_code=0, initial_print=''): def report_screen_size_change(*a): print("Screen size changed:", read_screen_size(fd=sys.stderr.fileno()).cols, file=sys.stderr, flush=True) + def report_tstp(*a): + print("SIGTSTP received", file=sys.stderr, flush=True) + raise SystemExit(19) + signal.signal(signal.SIGWINCH, report_screen_size_change) + signal.signal(signal.SIGTSTP, report_tstp) if initial_print: print(initial_print, flush=True, file=sys.stderr) @@ -94,6 +99,14 @@ def socket_child_main(exit_code=0, initial_print=''): pty.wait_till(lambda: 'KeyboardInterrupt' in pty.screen_contents()) wait_for_death(signal.SIGINT) + with self.subTest(msg='test SIGTSTP via Ctrl-z'): + pty = self.create_pty( + argv=[kitty_exe(), '+runpy', src + 'socket_child_main(initial_print="child ready:")'], cols=cols, env=env, cwd=cwd) + pty.wait_till(lambda: 'child ready:' in pty.screen_contents()) + pty.write_to_child('\x1a', flush=True) + pty.wait_till(lambda: 'SIGTSTP received' in pty.screen_contents()) + wait_for_death(19) + with self.subTest(msg='test SIGWINCH handling'): pty = self.create_pty( argv=[kitty_exe(), '+runpy', src + 'socket_child_main(initial_print="child ready:")'], cols=cols, env=env, cwd=cwd)