summaryrefslogtreecommitdiff
path: root/cpan/Time-HiRes/t/nanosleep.t
diff options
context:
space:
mode:
Diffstat (limited to 'cpan/Time-HiRes/t/nanosleep.t')
-rw-r--r--cpan/Time-HiRes/t/nanosleep.t35
1 files changed, 35 insertions, 0 deletions
diff --git a/cpan/Time-HiRes/t/nanosleep.t b/cpan/Time-HiRes/t/nanosleep.t
new file mode 100644
index 0000000000..aef9db6163
--- /dev/null
+++ b/cpan/Time-HiRes/t/nanosleep.t
@@ -0,0 +1,35 @@
+use strict;
+
+BEGIN {
+ require Time::HiRes;
+ unless(&Time::HiRes::d_nanosleep) {
+ require Test::More;
+ Test::More::plan(skip_all => "no nanosleep()");
+ }
+}
+
+use Test::More 0.82 tests => 3;
+use t::Watchdog;
+
+eval { Time::HiRes::nanosleep(-5) };
+like $@, qr/::nanosleep\(-5\): negative time not invented yet/,
+ "negative time error";
+
+my $one = CORE::time;
+Time::HiRes::nanosleep(10_000_000);
+my $two = CORE::time;
+Time::HiRes::nanosleep(10_000_000);
+my $three = CORE::time;
+ok $one == $two || $two == $three
+ or note "slept too long, $one $two $three";
+
+SKIP: {
+ skip "no gettimeofday", 1 unless &Time::HiRes::d_gettimeofday;
+ my $f = Time::HiRes::time();
+ Time::HiRes::nanosleep(500_000_000);
+ my $f2 = Time::HiRes::time();
+ my $d = $f2 - $f;
+ ok $d > 0.4 && $d < 0.9 or note "slept $d secs $f to $f2";
+}
+
+1;