The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl

use strict;
use warnings;

use Test::More tests => 2;

use POE qw( Session Kernel );
use IO::Async::Loop::POE;
use IO::Async::Signal;

my $loop = IO::Async::Loop::POE->new;

my $poe_signal;

POE::Session->create(
   inline_states => {
      _start => sub {
         $_[KERNEL]->sig( INT => 'sigint' );
      },
      sigint => sub { $poe_signal = $_[ARG0]; $_[KERNEL]->sig_handled },
   },
);

my $ioasync_signal;

$loop->add(
   IO::Async::Signal->new(
      name => "INT",
      on_receipt => sub { $ioasync_signal = "INT" },
   )
);

kill INT => $$;

$loop->loop_once until defined $poe_signal and defined $ioasync_signal;

is( $poe_signal,     "INT", 'POE signal' );
is( $ioasync_signal, "INT", 'IO::Async signal' );