Blob Blame History Raw
From 8985b12868f07d9ef501580d600e49fe8f230eb4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
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ř <ppisar@redhat.com>
---
 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