fish-shell/tests/pexpects/cancel_event.py
ridiculousfish bbb2f5aa14 Comment why certain tests are disabled under TSAN
This makes it clear that it is due to a known limitation of TSan and not
some lurking thread safety issue.
2021-12-28 21:35:30 -08:00

38 lines
942 B
Python

#!/usr/bin/env python3
import os
from pexpect_helper import SpawnedProc
import signal
sp = SpawnedProc()
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)
sp.expect_str("not executed^C")
expect_prompt(increment=False)
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)
expect_str("still not executed^C")
expect_prompt("yay cancelled", increment=False)