X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=t%2F31-threads-teardown.t;h=cd93a505d342512c105a952b0e93904a7e1f8442;hb=bf1b09f4ab8df1710df549764d511b110c6cb396;hp=2354e608f2c0bd834e3b80f34d644615ec339e5f;hpb=c03d14b5eed6696196ad91bd7a7b3a3bbb1a2b97;p=perl%2Fmodules%2FLexical-Types.git diff --git a/t/31-threads-teardown.t b/t/31-threads-teardown.t index 2354e60..cd93a50 100644 --- a/t/31-threads-teardown.t +++ b/t/31-threads-teardown.t @@ -3,14 +3,20 @@ use strict; use warnings; -use Config qw/%Config/; +sub skipall { + my ($msg) = @_; + require Test::More; + Test::More::plan(skip_all => $msg); +} + +use Config qw<%Config>; BEGIN { - if (!$Config{useithreads}) { - require Test::More; - Test::More->import; - plan(skip_all => 'This perl wasn\'t built to support threads'); - } + my $force = $ENV{PERL_LEXICAL_TYPES_TEST_THREADS} ? 1 : !1; + skipall 'This perl wasn\'t built to support threads' + unless $Config{useithreads}; + skipall 'perl 5.13.4 required to test thread safety' + unless $force or $] >= 5.013004; } use threads; @@ -19,12 +25,10 @@ use Test::More; BEGIN { require Lexical::Types; - if (Lexical::Types::LT_THREADSAFE()) { - plan tests => 1; - defined and diag "Using threads $_" for $threads::VERSION; - } else { - plan skip_all => 'This Lexical::Types isn\'t thread safe'; - } + skipall 'This Lexical::Types isn\'t thread safe' + unless Lexical::Types::LT_THREADSAFE(); + plan tests => 1; + defined and diag "Using threads $_" for $threads::VERSION; } sub run_perl { @@ -51,11 +55,11 @@ SKIP: } use threads; $code = threads->create(sub { - $code = @expected = qw/IntX/; + $code = @expected = qw; eval q{use Lexical::Types as => \&cb; my IntX $x;}; die if $@; return $code; })->join; - $code += @expected = qw/IntZ/; + $code += @expected = qw; eval q{my IntY $y;}; die if $@; eval q{use Lexical::Types as => \&cb; my IntZ $z;}; die if $@; $code += 256 if $code < 0;