Document tricks, work-arounds for user-defined casing
[p5sagit/p5-mst-13.2.git] / t / op / sselect.t
index 332b7c0..ffb4aad 100644 (file)
@@ -31,13 +31,20 @@ like ($@, qr/^Modification of a read-only value attempted/);
 eval {select $blank, $blank, "a", 0};
 like ($@, qr/^Modification of a read-only value attempted/);
 
-my $sleep = 3;
+my($sleep,$fudge) = (3,0);
+# Actual sleep time on Windows may be rounded down to an integral
+# multiple of the system clock tick interval.  Clock tick interval
+# is configurable, but usually about 15.625 milliseconds.
+# time() however doesn't return fractional values, so the observed
+# delay may be 1 second short.
+($sleep,$fudge) = (4,1) if $^O eq "MSWin32";
+
 my $t = time;
 select(undef, undef, undef, $sleep);
-ok(time-$t >= $sleep, "$sleep seconds have passed");
+ok(time-$t >= $sleep-$fudge, "$sleep seconds have passed");
 
 my $empty = "";
 vec($empty,0,1) = 0;
 $t = time;
 select($empty, undef, undef, $sleep);
-ok(time-$t >= $sleep, "$sleep seconds have passed");
+ok(time-$t >= $sleep-$fudge, "$sleep seconds have passed");