From 5917ae8baf32d3794b5f67b76182b7e865b37ea0 Mon Sep 17 00:00:00 2001 From: ridiculousfish Date: Sat, 28 May 2022 14:40:29 -0700 Subject: [PATCH] Add a test for trap Preparation to implement trapping in non-interactive mode. --- tests/checks/trap.fish | 51 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 tests/checks/trap.fish diff --git a/tests/checks/trap.fish b/tests/checks/trap.fish new file mode 100644 index 000000000..e1afc1cb8 --- /dev/null +++ b/tests/checks/trap.fish @@ -0,0 +1,51 @@ +# RUN: %fish %s + +set -g SIGUSR1_COUNT 0 + +function gotsigusr1 + set -g SIGUSR1_COUNT (math $SIGUSR1_COUNT + 1) + echo "Got USR1: $SIGUSR1_COUNT" + +end + +function handle1 --on-signal SIGUSR1 + gotsigusr1 +end + +function handle_us42 --on-signal SIGUSR2 +end + +kill -USR1 $fish_pid +sleep .1 +#CHECK: Got USR1: 1 + +kill -USR1 $fish_pid +sleep .1 +#CHECK: Got USR1: 2 + +kill -USR2 $fish_pid +sleep .1 +kill -USR2 $fish_pid +sleep .1 + +# Previous signals do not re-trigger handlers. +functions --erase handle1 +kill -USR1 $fish_pid +sleep .1 +kill -USR1 $fish_pid +sleep .1 + +kill -USR2 $fish_pid +sleep .1 + +# Send the signal and immediately define the function; it should not excute. +kill -USR1 $fish_pid +function handle1 --on-signal SIGUSR1 + gotsigusr1 +end +echo "Hope it did not run" +#CHECK: Hope it did not run + +kill -USR1 $fish_pid +sleep .1 +#CHECK: Got USR1: 3