Blame t/threads.t

Packit Service 7500fa
use strict;
Packit Service 7500fa
use warnings;
Packit Service 7500fa
use Test::More;
Packit Service 7500fa
use Config;
Packit Service 7500fa
Packit Service 7500fa
BEGIN {
Packit Service 7500fa
    plan skip_all => 'Perl not compiled with useithreads'
Packit Service 7500fa
        if !$Config{useithreads};
Packit Service 7500fa
    plan skip_all => 'This test does not cope well with this version of perl'
Packit Service 7500fa
        if "$]" == 5.008_002
Packit Service 7500fa
        or ("$]" < 5.013_004 and not $ENV{AUTHOR_TESTING});
Packit Service 7500fa
    plan tests => 4;
Packit Service 7500fa
}
Packit Service 7500fa
Packit Service 7500fa
use threads;
Packit Service 7500fa
use Data::UUID;
Packit Service 7500fa
Packit Service 7500fa
my $ug = Data::UUID->new;
Packit Service 7500fa
Packit Service 7500fa
my @threads = map {
Packit Service 7500fa
    threads->create(sub { ($ug->create_str, Data::UUID->new->create_str) });
Packit Service 7500fa
} 1 .. 20;
Packit Service 7500fa
Packit Service 7500fa
my @ret = map {
Packit Service 7500fa
    $_->join
Packit Service 7500fa
} @threads;
Packit Service 7500fa
Packit Service 7500fa
pass 'we survived our threads';
Packit Service 7500fa
Packit Service 7500fa
is @ret, 40, 'got as all the uuids we expected';
Packit Service 7500fa
ok !grep({ !defined } @ret), 'uuids look sane';
Packit Service 7500fa
Packit Service 7500fa
my %uuids = map { $_ => 1 } @ret;
Packit Service 7500fa
is keys %uuids, @ret, "all UUIDs are unique";