xref: /openbsd-src/gnu/usr.bin/perl/ext/PerlIO-encoding/t/threads.t (revision b8851fcc53cbe24fd20b090f26dd149e353f6174)
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