5 if ($ENV{DEVEL_GLOBALDESTRUCTION_PP_TEST}) {
7 no warnings 'redefine';
8 my $orig = \&DynaLoader::bootstrap;
9 *DynaLoader::bootstrap = sub {
10 die 'no XS' if $_[0] eq 'Devel::GlobalDestruction';
17 package Test::Scope::Guard;
18 sub new { my ($class, $code) = @_; bless [$code], $class; }
19 sub DESTROY { my $self = shift; $self->[0]->() }
25 END { $? = $had_error };
27 $had_error++, print "not " if !$_[0];
29 print " - $_[1]" if defined $_[1];
33 ok( eval "use Devel::GlobalDestruction; 1", "use Devel::GlobalDestruction" );
35 ok( defined &in_global_destruction, "exported" );
37 ok( defined prototype \&in_global_destruction, "defined prototype" );
39 ok( prototype \&in_global_destruction eq "", "empty prototype" );
41 ok( !in_global_destruction(), "not in GD" );
43 our $sg = Test::Scope::Guard->new(sub { ok( in_global_destruction(), "in GD" ) });