Blame t/03_minusc.t

Packit f32316
use strict;
Packit f32316
use warnings;
Packit f32316
Packit f32316
BEGIN {
Packit f32316
  if ($ENV{DEVEL_GLOBALDESTRUCTION_PP_TEST}) {
Packit f32316
    unshift @INC, sub {
Packit f32316
      die 'no XS' if $_[1] eq 'Devel/GlobalDestruction/XS.pm';
Packit f32316
    };
Packit f32316
  }
Packit f32316
}
Packit f32316
Packit f32316
{
Packit f32316
  package Test::Scope::Guard;
Packit f32316
  sub new { my ($class, $code) = @_; bless [$code], $class; }
Packit f32316
  sub DESTROY { my $self = shift; $self->[0]->() }
Packit f32316
}
Packit f32316
Packit f32316
sub ok ($$) {
Packit f32316
  print "not " if !$_[0];
Packit f32316
  print "ok";
Packit f32316
  print " - $_[1]" if defined $_[1];
Packit f32316
  print "\n";
Packit f32316
  !!$_[0]
Packit f32316
}
Packit f32316
Packit f32316
BEGIN {
Packit f32316
  require B;
Packit f32316
  B::minus_c();
Packit f32316
Packit f32316
  print "1..3\n";
Packit f32316
  ok( $^C, "Test properly running under minus-c" );
Packit f32316
}
Packit f32316
Packit f32316
use Devel::GlobalDestruction;
Packit f32316
Packit f32316
BEGIN {
Packit f32316
    ok !in_global_destruction(), "BEGIN is not GD with -c";
Packit f32316
}
Packit f32316
Packit f32316
our $foo;
Packit f32316
BEGIN {
Packit f32316
  $foo = Test::Scope::Guard->new( sub {
Packit f32316
    ok( in_global_destruction(), "Final cleanup object destruction properly in GD" ) or do {
Packit f32316
      require POSIX;
Packit f32316
      POSIX::_exit(1);
Packit f32316
    };
Packit f32316
  });
Packit f32316
}