Silence a warning from (MinGW's) gcc
[p5sagit/p5-mst-13.2.git] / ext / threads / t / libc.t
CommitLineData
0f1612a7 1use strict;
2use warnings;
83007387 3
4BEGIN {
0f1612a7 5 if ($ENV{'PERL_CORE'}){
6 chdir 't';
7 unshift @INC, '../lib';
8 }
9 use Config;
fc04eb16 10 if (! $Config{'useithreads'}) {
11 print("1..0 # Skip: Perl not compiled with 'useithreads'\n");
12 exit(0);
83007387 13 }
14}
15
16use ExtUtils::testlib;
0f1612a7 17
f2cba68d 18sub ok {
19 my ($id, $ok, $name) = @_;
20
21 # You have to do it this way or VMS will get confused.
22 if ($ok) {
23 print("ok $id - $name\n");
24 } else {
25 print("not ok $id - $name\n");
26 printf("# Failed test at line %d\n", (caller)[2]);
27 }
28
29 return ($ok);
30}
31
58a3a76c 32use threads;
33
fc04eb16 34BEGIN {
35 $| = 1;
36 print("1..12\n"); ### Number of tests that will be run ###
37};
83007387 38
f2cba68d 39ok(1, 1, 'Loaded');
40
fc04eb16 41### Start of Testing ###
42
83007387 43my $i = 10;
44my $y = 20000;
fc04eb16 45
83007387 46my %localtime;
fc04eb16 47for (0..$i) {
48 $localtime{$_} = localtime($_);
83007387 49};
fc04eb16 50
83007387 51my @threads;
fc04eb16 52for (0..$i) {
53 my $thread = threads->create(sub {
54 my $arg = $_;
55 my $localtime = $localtime{$arg};
56 my $error = 0;
57 for (0..$y) {
58 my $lt = localtime($arg);
45cd5be7 59 if ($localtime ne $lt) {
fc04eb16 60 $error++;
61 }
62 }
894eec8b 63 return $error;
fc04eb16 64 });
65 push @threads, $thread;
83007387 66}
67
894eec8b 68for (0..$i) {
69 my $result = $threads[$_]->join();
70 ok($_ + 2, defined($result) && ("$result" eq '0'), 'localtime safe');
83007387 71}
72
fc04eb16 73# EOF