]> gitweb.factorcode.org Git - factor.git/blob - basis/unix/signals/signals-tests.factor
continuations[-docs]: add the finally word
[factor.git] / basis / unix / signals / signals-tests.factor
1 USING: calendar continuations io kernel libc math namespaces
2 threads tools.test unix.ffi unix.process unix.signals ;
3 IN: unix.signals.tests
4
5 SYMBOL: sigusr1-count
6 0 sigusr1-count set-global
7
8 CONSTANT: test-sigusr1-handler [ 1 sigusr1-count +@ ]
9
10 "=========" print
11 "NOTE: This test uses SIGUSR1. It may break or cause unwanted behavior" print
12 "if other SIGUSR1 handlers are installed." print
13 "=========" print flush
14
15 test-sigusr1-handler SIGUSR1 add-signal-handler
16 [
17
18     [ 1 ] [
19         sigusr1-count get-global
20         SIGUSR1 raise drop
21         0.5 seconds sleep
22         sigusr1-count get-global
23         swap -
24     ] unit-test
25
26 ] [ test-sigusr1-handler SIGUSR1 remove-signal-handler ] finally
27
28 { 0 } [
29     sigusr1-count get-global
30     SIGUSR1 raise drop
31     0.5 seconds sleep
32     sigusr1-count get-global swap -
33 ] unit-test