1*b8851fccSafresh1#!perl 2*b8851fccSafresh1 3*b8851fccSafresh1use strict; 4*b8851fccSafresh1use warnings; 5*b8851fccSafresh1 6*b8851fccSafresh1BEGIN { 7*b8851fccSafresh1 use Config; 8*b8851fccSafresh1 if ($Config{extensions} !~ /\bEncode\b/) { 9*b8851fccSafresh1 print "1..0 # Skip: no Encode\n"; 10*b8851fccSafresh1 exit 0; 11*b8851fccSafresh1 } 12*b8851fccSafresh1 unless ($Config{useithreads}) { 13*b8851fccSafresh1 print "1..0 # Skip: no threads\n"; 14*b8851fccSafresh1 exit 0; 15*b8851fccSafresh1 } 16*b8851fccSafresh1} 17*b8851fccSafresh1 18*b8851fccSafresh1use threads; 19*b8851fccSafresh1 20*b8851fccSafresh1use Test::More tests => 3 + 1; 21*b8851fccSafresh1 22*b8851fccSafresh1binmode *STDOUT, ':encoding(UTF-8)'; 23*b8851fccSafresh1 24*b8851fccSafresh1SKIP: { 25*b8851fccSafresh1 local $@; 26*b8851fccSafresh1 my $ret = eval { 27*b8851fccSafresh1 my $thread = threads->create(sub { pass 'in thread'; return 1 }); 28*b8851fccSafresh1 skip 'test thread could not be spawned' => 3 unless $thread; 29*b8851fccSafresh1 $thread->join; 30*b8851fccSafresh1 }; 31*b8851fccSafresh1 is $@, '', 'thread did not croak'; 32*b8851fccSafresh1 is $ret, 1, 'thread returned the right value'; 33*b8851fccSafresh1} 34*b8851fccSafresh1 35*b8851fccSafresh1pass 'passes at least one test'; 36