]> Sergey Matveev's repositories - public-inbox.git/blobdiff - t/sigfd.t
No ext_urls
[public-inbox.git] / t / sigfd.t
index a1ab222c0c4daeaeb5ead02f8f2f35ad820782c9..7eb6b222819b0363416f659957a97dbdea30438d 100644 (file)
--- a/t/sigfd.t
+++ b/t/sigfd.t
@@ -4,7 +4,6 @@ use Test::More;
 use IO::Handle;
 use POSIX qw(:signal_h);
 use Errno qw(ENOSYS);
-use PublicInbox::Syscall qw(SFD_NONBLOCK);
 require_ok 'PublicInbox::Sigfd';
 use PublicInbox::DS;
 
@@ -19,7 +18,8 @@ SKIP: {
        local $SIG{HUP} = sub { $hit->{HUP}->{normal}++ };
        local $SIG{TERM} = sub { $hit->{TERM}->{normal}++ };
        local $SIG{INT} = sub { $hit->{INT}->{normal}++ };
-       for my $s (qw(HUP TERM INT)) {
+       local $SIG{WINCH} = sub { $hit->{WINCH}->{normal}++ };
+       for my $s (qw(HUP TERM INT WINCH)) {
                $sig->{$s} = sub { $hit->{$s}->{sigfd}++ };
        }
        my $sigfd = PublicInbox::Sigfd->new($sig, 0);
@@ -27,6 +27,7 @@ SKIP: {
                ok($sigfd, 'Sigfd->new works');
                kill('HUP', $$) or die "kill $!";
                kill('INT', $$) or die "kill $!";
+               kill('WINCH', $$) or die "kill $!";
                my $fd = fileno($sigfd->{sock});
                ok($fd >= 0, 'fileno(Sigfd->{sock}) works');
                my $rvec = '';
@@ -40,21 +41,22 @@ SKIP: {
                }
                $sigfd = undef;
 
-               my $nbsig = PublicInbox::Sigfd->new($sig, SFD_NONBLOCK);
+               my $nbsig = PublicInbox::Sigfd->new($sig, 1);
                ok($nbsig, 'Sigfd->new SFD_NONBLOCK works');
                is($nbsig->wait_once, undef, 'nonblocking ->wait_once');
                ok($! == Errno::EAGAIN, 'got EAGAIN');
                kill('HUP', $$) or die "kill $!";
                PublicInbox::DS->SetPostLoopCallback(sub {}); # loop once
-               PublicInbox::DS->EventLoop;
+               PublicInbox::DS::event_loop();
                is($hit->{HUP}->{sigfd}, 2, 'HUP sigfd fired in event loop') or
                        diag explain($hit); # sometimes fails on FreeBSD 11.x
                kill('TERM', $$) or die "kill $!";
                kill('HUP', $$) or die "kill $!";
-               PublicInbox::DS->EventLoop;
+               PublicInbox::DS::event_loop();
                PublicInbox::DS->Reset;
                is($hit->{TERM}->{sigfd}, 1, 'TERM sigfd fired in event loop');
                is($hit->{HUP}->{sigfd}, 3, 'HUP sigfd fired in event loop');
+               is($hit->{WINCH}->{sigfd}, 1, 'WINCH sigfd fired in event loop');
        } else {
                skip('signalfd disabled?', 10);
        }