xref: /openbsd-src/gnu/usr.bin/perl/dist/threads/t/libc.t (revision c90a81c56dcebd6a1b73fe4aff9b03385b8e63b3)
1use strict;
2use warnings;
3
4BEGIN {
5    require($ENV{PERL_CORE} ? '../../t/test.pl' : './t/test.pl');
6
7    use Config;
8    if (! $Config{'useithreads'}) {
9        skip_all(q/Perl not compiled with 'useithreads'/);
10    }
11
12    plan(11);
13}
14
15use ExtUtils::testlib;
16
17use_ok('threads');
18
19### Start of Testing ###
20
21my $i = 10;
22my $y = 20000;
23
24my %localtime;
25for (1..$i) {
26    $localtime{$_} = localtime($_);
27};
28
29my @threads;
30for (1..$i) {
31    $threads[$_] = threads->create(sub {
32                        my $arg = shift;
33                        my $localtime = $localtime{$arg};
34                        my $error = 0;
35                        for (1..$y) {
36                            my $lt = localtime($arg);
37                            if ($localtime ne $lt) {
38                                $error++;
39                            }
40                        }
41                        return $error;
42                    }, $_);
43}
44
45for (1..$i) {
46    is($threads[$_]->join(), 0, 'localtime() thread-safe');
47}
48
49exit(0);
50
51# EOF
52