From 8985b12868f07d9ef501580d600e49fe8f230eb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= Date: Tue, 22 Aug 2017 09:49:42 +0200 Subject: [PATCH] Time-HiRes: Fix unreliable t/usleep.t and t/utime.t MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ported from Time-HiRes-1.9746. The tests randomly failed on loaded machines because a CPU scheduler could add unpredictable delays. CPAN RT#122819 Signed-off-by: Petr Písař --- dist/Time-HiRes/t/usleep.t | 4 ++-- dist/Time-HiRes/t/utime.t | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/dist/Time-HiRes/t/usleep.t b/dist/Time-HiRes/t/usleep.t index 9322458..bb66cbe 100644 --- a/dist/Time-HiRes/t/usleep.t +++ b/dist/Time-HiRes/t/usleep.t @@ -32,7 +32,7 @@ SKIP: { Time::HiRes::usleep(500_000); my $f2 = Time::HiRes::time(); my $d = $f2 - $f; - ok $d > 0.4 && $d < 0.9 or print("# slept $d secs $f to $f2\n"); + ok $d > 0.49 or print("# slept $d secs $f to $f2\n"); } SKIP: { @@ -40,7 +40,7 @@ SKIP: { my $r = [ Time::HiRes::gettimeofday() ]; Time::HiRes::sleep( 0.5 ); my $f = Time::HiRes::tv_interval $r; - ok $f > 0.4 && $f < 0.9 or print("# slept $f instead of 0.5 secs.\n"); + ok $f > 0.49 or print("# slept $f instead of 0.5 secs.\n"); } SKIP: { diff --git a/dist/Time-HiRes/t/utime.t b/dist/Time-HiRes/t/utime.t index 22fd48e..c5c7e55 100644 --- a/dist/Time-HiRes/t/utime.t +++ b/dist/Time-HiRes/t/utime.t @@ -106,17 +106,18 @@ print "# utime undef sets time to now\n"; my ($fh2, $filename2) = tempfile( "Time-HiRes-utime-XXXXXXXXX", UNLINK => 1 ); my $now = Time::HiRes::time; + sleep(1); is Time::HiRes::utime(undef, undef, $filename1, $fh2), 2, "Two files changed"; { my ($got_atime, $got_mtime) = ( Time::HiRes::stat($fh1) )[8, 9]; - cmp_ok abs( $got_atime - $now), '<', 0.1, "File 1 atime set correctly"; - cmp_ok abs( $got_mtime - $now), '<', 0.1, "File 1 mtime set correctly"; + cmp_ok $got_atime, '>=', $now, "File 1 atime set correctly"; + cmp_ok $got_mtime, '>=', $now, "File 1 mtime set correctly"; } { my ($got_atime, $got_mtime) = ( Time::HiRes::stat($filename2) )[8, 9]; - cmp_ok abs( $got_atime - $now), '<', 0.1, "File 2 atime set correctly"; - cmp_ok abs( $got_mtime - $now), '<', 0.1, "File 2 mtime set correctly"; + cmp_ok $got_atime, '>=', $now, "File 2 atime set correctly"; + cmp_ok $got_mtime, '>=', $now, "File 2 mtime set correctly"; } }; -- 2.9.5