This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
fix dist/Time-HiRes/t/*.t that assumed '.' in @INC
[perl5.git] / dist / Time-HiRes / t / nanosleep.t
1 use strict;
2
3 BEGIN {
4     require Time::HiRes;
5     unless(&Time::HiRes::d_nanosleep) {
6         require Test::More;
7         Test::More::plan(skip_all => "no nanosleep()");
8     }
9 }
10
11 use Test::More tests => 3;
12 BEGIN { push @INC, '.' }
13 use t::Watchdog;
14
15 eval { Time::HiRes::nanosleep(-5) };
16 like $@, qr/::nanosleep\(-5\): negative time not invented yet/,
17         "negative time error";
18
19 my $one = CORE::time;
20 Time::HiRes::nanosleep(10_000_000);
21 my $two = CORE::time;
22 Time::HiRes::nanosleep(10_000_000);
23 my $three = CORE::time;
24 ok $one == $two || $two == $three
25     or print("# slept too long, $one $two $three\n");
26
27 SKIP: {
28     skip "no gettimeofday", 1 unless &Time::HiRes::d_gettimeofday;
29     my $f = Time::HiRes::time();
30     Time::HiRes::nanosleep(500_000_000);
31     my $f2 = Time::HiRes::time();
32     my $d = $f2 - $f;
33     ok $d > 0.4 && $d < 0.9 or print("# slept $d secs $f to $f2\n");
34 }
35
36 1;