xref: /openbsd-src/gnu/usr.bin/perl/dist/Time-HiRes/t/time.t (revision 56d68f1e19ff848c889ecfa71d3a06340ff64892)
1b8851fccSafresh1use strict;
2b8851fccSafresh1
3014083a1Safresh1use Test::More tests => 2;
4*9f11ffb7Safresh1BEGIN { push @INC, '.' }
5b8851fccSafresh1use t::Watchdog;
6b8851fccSafresh1
7b8851fccSafresh1BEGIN { require_ok "Time::HiRes"; }
8b8851fccSafresh1
9b8851fccSafresh1SKIP: {
10b8851fccSafresh1    skip "no gettimeofday", 1 unless &Time::HiRes::d_gettimeofday;
11b8851fccSafresh1    my ($s, $n, $i) = (0);
12b8851fccSafresh1    for $i (1 .. 100) {
13b8851fccSafresh1        $s += Time::HiRes::time() - CORE::time();
14b8851fccSafresh1        $n++;
15b8851fccSafresh1    }
16b8851fccSafresh1    # $s should be, at worst, equal to $n
17b8851fccSafresh1    # (CORE::time() may be rounding down, up, or closest),
18b8851fccSafresh1    # but allow 10% of slop.
19b8851fccSafresh1    ok abs($s) / $n <= 1.10
20014083a1Safresh1        or print("# Time::HiRes::time() not close to CORE::time()\n");
21014083a1Safresh1    printf("# s = $s, n = $n, s/n = %s\n", abs($s)/$n);
22b8851fccSafresh1}
23b8851fccSafresh1
24b8851fccSafresh11;
25