use strict;
use warnings;
use Test::More;

use B::Hooks::EndOfScope;

plan skip_all => 'Skipping PP fallback test in XS mode'
  unless $INC{'B/Hooks/EndOfScope/PP.pm'};

my $w;
local $SIG{__WARN__} = sub {
  $w = $_[0] if $_[0] =~ qr/\QException "bar"/
};

eval q[
    sub foo {
        BEGIN {
            on_scope_end { die 'Exception "bar"' };
        }
    }
];

like (
  $w,
  qr/scope-end callback raised an exception, which can not be propagated when .+? operates in pure-perl mode/,
  'Warning on lost callback exception correctly emited'
);

done_testing;
