1b8851fccSafresh1use strict; 2b8851fccSafresh1 3014083a1Safresh1use Test::More tests => 4; 4*9f11ffb7Safresh1BEGIN { push @INC, '.' } 5b8851fccSafresh1use t::Watchdog; 6b8851fccSafresh1 7b8851fccSafresh1BEGIN { require_ok "Time::HiRes"; } 8b8851fccSafresh1 9b8851fccSafresh1use Config; 10b8851fccSafresh1 11b8851fccSafresh1my $xdefine = ''; 12*9f11ffb7Safresh1if (open(XDEFINE, "<", "xdefine")) { 13b8851fccSafresh1 chomp($xdefine = <XDEFINE> || ""); 14b8851fccSafresh1 close(XDEFINE); 15b8851fccSafresh1} 16b8851fccSafresh1 17b8851fccSafresh1my $can_subsecond_alarm = 18b8851fccSafresh1 defined &Time::HiRes::gettimeofday && 19b8851fccSafresh1 defined &Time::HiRes::ualarm && 20b8851fccSafresh1 defined &Time::HiRes::usleep && 21b8851fccSafresh1 ($Config{d_ualarm} || $xdefine =~ /-DHAS_UALARM/); 22b8851fccSafresh1 23b8851fccSafresh1eval { Time::HiRes::sleep(-1) }; 24b8851fccSafresh1like $@, qr/::sleep\(-1\): negative time not invented yet/, 25b8851fccSafresh1 "negative time error"; 26b8851fccSafresh1 27b8851fccSafresh1SKIP: { 28b8851fccSafresh1 skip "no subsecond alarm", 2 unless $can_subsecond_alarm; 29b8851fccSafresh1 my $f = Time::HiRes::time; 30014083a1Safresh1 print("# time...$f\n"); 31b8851fccSafresh1 ok 1; 32b8851fccSafresh1 33b8851fccSafresh1 my $r = [Time::HiRes::gettimeofday()]; 34b8851fccSafresh1 Time::HiRes::sleep (0.5); 35014083a1Safresh1 printf("# sleep...%s\n", Time::HiRes::tv_interval($r)); 36b8851fccSafresh1 ok 1; 37b8851fccSafresh1} 38b8851fccSafresh1 39b8851fccSafresh11; 40