fish-shell/tests/pexpects/cancel_event.py

43 lines
953 B
Python
Raw Permalink Normal View History

#!/usr/bin/env python3
import os
from pexpect_helper import SpawnedProc
import signal
sp = SpawnedProc()
2020-11-22 21:39:48 +08:00
send, sendline, sleep, expect_str, expect_prompt = (
sp.send,
sp.sendline,
sp.sleep,
sp.expect_str,
sp.expect_prompt,
)
expect_prompt()
timeout = 0.15
if "CI" in os.environ:
# This doesn't work under TSan, because TSan prevents select() being
# interrupted by a signal.
import sys
print("SKIPPING cancel_event.py")
sys.exit(0)
# Verify that cancel-commandline does what we expect - see #7384.
send("not executed")
sleep(timeout)
os.kill(sp.spawn.pid, signal.SIGINT)
2023-12-28 21:41:30 +08:00
sendline("echo marker")
sp.expect_str("marker")
expect_prompt()
sendline("function cancelhandler --on-event fish_cancel ; echo yay cancelled ; end")
expect_prompt()
send("still not executed")
sleep(timeout)
os.kill(sp.spawn.pid, signal.SIGINT)
2023-12-28 21:41:30 +08:00
expect_str("yay cancelled")
sendline("echo marker")
sp.expect_str("marker")
expect_prompt()