X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=t%2F31-threads-teardown.t;h=741d2242e506b8216c4dd9b2ab716522298cf813;hb=55716e9a7414ca5da96259d66fd0f20c1cbba893;hp=632293b6373a5057c3e609da3e8e51a720686a62;hpb=333c198120153b0cfe076fcb54e100dcf0eb9fb4;p=perl%2Fmodules%2FLexical-Types.git diff --git a/t/31-threads-teardown.t b/t/31-threads-teardown.t index 632293b..741d224 100644 --- a/t/31-threads-teardown.t +++ b/t/31-threads-teardown.t @@ -3,41 +3,23 @@ use strict; use warnings; -use Config qw/%Config/; +use lib 't/lib'; +use Lexical::Types::TestThreads; -BEGIN { - if (!$Config{useithreads}) { - require Test::More; - Test::More->import; - plan(skip_all => 'This perl wasn\'t built to support threads'); - } -} - -use threads; - -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'; - } -} +use Test::More tests => 1; sub run_perl { my $code = shift; + my ($SystemRoot, $PATH) = @ENV{qw}; local %ENV; + $ENV{SystemRoot} = $SystemRoot if $^O eq 'MSWin32' and defined $SystemRoot; + $ENV{PATH} = $PATH if $^O eq 'cygwin' and defined $PATH; + system { $^X } $^X, '-T', map("-I$_", @INC), '-e', $code; } -SKIP: { - skip 'Fails on 5.8.2 and lower' => 1 if $] <= 5.008002; - my $status = run_perl <<' RUN'; { package IntX; package IntY; package IntZ; } my ($code, @expected); @@ -48,11 +30,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;