X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fop%2Fsselect.t;h=ffb4aadcf126ee560facf5d3a88358db8a1c43e1;hb=71648f9a69cff1f8ee90adfed51c64c3c2dfeaf1;hp=332b7c0b896c0d4bedeb38693f9e99f67908e1ea;hpb=e4d771f5006ebd70b76422437cce60e9ac40c830;p=p5sagit%2Fp5-mst-13.2.git diff --git a/t/op/sselect.t b/t/op/sselect.t index 332b7c0..ffb4aad 100644 --- a/t/op/sselect.t +++ b/t/op/sselect.t @@ -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");