X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=t%2Flib%2FVariable%2FMagic%2FTestGlobalDestruction.pm;h=c6639a63ba3e2d8e3e6815d0dc604be7c096af54;hb=18975a85575a68ddb2e0e0a6ee8075dac66a3c73;hp=d4b67496686c5e6b9a0916a61250984b1c9762ed;hpb=639740d033285630593f2dc4773e5a8b7fa42ed6;p=perl%2Fmodules%2FVariable-Magic.git diff --git a/t/lib/Variable/Magic/TestGlobalDestruction.pm b/t/lib/Variable/Magic/TestGlobalDestruction.pm index d4b6749..c6639a6 100644 --- a/t/lib/Variable/Magic/TestGlobalDestruction.pm +++ b/t/lib/Variable/Magic/TestGlobalDestruction.pm @@ -63,23 +63,32 @@ sub is_debugging_perl { sub import { shift; - my %args = @_; - my $level = $args{level} || 1; + my %args = @_; + + my $level = $args{level}; + $level = 1 unless defined $level; if ("$]" < 5.013_004 and not $ENV{PERL_VARIABLE_MAGIC_TEST_THREADS}) { _diag("perl 5.13.4 required to safely test global destruction"); - return; + return 0; } - my $env_level = int($ENV{PERL_DESTRUCT_LEVEL} || 0); - if ($env_level >= $level) { + my $env_level = $ENV{PERL_DESTRUCT_LEVEL}; + if (defined $env_level) { + $env_level = do { + no warnings 'numeric'; + int $env_level; + }; + my $is_debugging = is_debugging_perl(); - require Test::More; if ($is_debugging) { - _diag("Global destruction level $env_level set by PERL_DESTRUCT_LEVEL (debugging perl)"); - return; + my $ignoring = $env_level < $level ? ', ignoring' : ''; + _diag("Global destruction level $env_level set by PERL_DESTRUCT_LEVEL (debugging perl)$ignoring"); + unless ($ignoring) { + return 1; + } } else { - _diag("PERL_DESTRUCT_LEVEL is set to $env_level, but this perl doesn't seem to have debugging enabled"); + _diag("PERL_DESTRUCT_LEVEL is set to $env_level, but this perl doesn't seem to have debugging enabled, ignoring"); } } @@ -91,13 +100,14 @@ sub import { 1; } }; + if ($has_perl_destruct_level) { _diag("Global destruction level $level set by Perl::Destruct::Level"); - return; + return 1; } _diag("Not testing global destruction"); - return; + return 0; } 1;