X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=t%2Flib%2FVariable%2FMagic%2FTestGlobalDestruction.pm;h=34c4b5983f11c15cc5ca9ea14ff7376ea3ed2a96;hb=abc9974f53e87f80925e626771ff1546dba71f93;hp=d610dc0a19fd2019157fb8dbac1c1ae33e663c66;hpb=7aa917c0209f40fa1593742b2cadeefe1d4f0922;p=perl%2Fmodules%2FVariable-Magic.git diff --git a/t/lib/Variable/Magic/TestGlobalDestruction.pm b/t/lib/Variable/Magic/TestGlobalDestruction.pm index d610dc0..34c4b59 100644 --- a/t/lib/Variable/Magic/TestGlobalDestruction.pm +++ b/t/lib/Variable/Magic/TestGlobalDestruction.pm @@ -68,21 +68,29 @@ sub import { my $level = $args{level}; $level = 1 unless defined $level; - if ("$]" < 5.013_004 and not $ENV{PERL_VARIABLE_MAGIC_TEST_THREADS}) { + if ("$]" < 5.013_004 and not $ENV{PERL_FORCE_TEST_THREADS}) { _diag("perl 5.13.4 required to safely test global destruction"); return 0; } - my $env_level = int($ENV{PERL_DESTRUCT_LEVEL} || 0); - if ($env_level >= $level) { - my $is_debugging = is_debugging_perl(); + my $env_level = $ENV{PERL_DESTRUCT_LEVEL}; + if (defined $env_level) { + no warnings 'numeric'; + $env_level = int $env_level; + } - if ($is_debugging) { - _diag("Global destruction level $env_level set by PERL_DESTRUCT_LEVEL (debugging perl)"); + my $is_debugging = is_debugging_perl(); + if ($is_debugging) { + if (defined $env_level) { + _diag("Global destruction level $env_level set by PERL_DESTRUCT_LEVEL (environment)"); + return ($env_level >= $level) ? 1 : 0; + } else { + $ENV{PERL_DESTRUCT_LEVEL} = $level; + _diag("Global destruction level $level set by PERL_DESTRUCT_LEVEL (forced)"); return 1; } - - _diag("PERL_DESTRUCT_LEVEL is set to $env_level, but this perl doesn't seem to have debugging enabled"); + } elsif (defined $env_level) { + _diag("PERL_DESTRUCT_LEVEL is set to $env_level, but this perl doesn't seem to have debugging enabled, ignoring"); } my $has_perl_destruct_level = do {