1#!./perl
2
3BEGIN {
4    chdir 't' if -d 't';
5    require "./test.pl";
6    set_up_inc( qw(. ../lib) );
7}
8
9require Config; import Config;
10plan(tests => 1);
11
12SKIP: {
13    skip("Alarm not supported", 1) unless exists $Config{'d_alarm'};
14
15    $SIG{ALRM} = sub {
16        # We could call anything that modifies $! here, but
17        # this way we can be sure that it isn't the same
18        # errno as interrupted sleep() would return, and are
19        # able to check it thereafter.
20        $! = -1;
21    };
22
23    alarm 1;
24    sleep 2;
25
26    # Interrupted sleeps sets errno to EAGAIN, but signal
27    # that # hits after it (if safe signal handling is enabled)
28    # causes a routing that modifies $! to be run afterwards
29    isnt($! + 0, -1, 'Signal does not modify $!');
30}
31