Commit:    469cd3abf131853b5c727c7ebffff84754d8383c
Author:    Anatoliy Belsky <a...@php.net>         Tue, 3 Apr 2012 11:04:52 +0200
Parents:   6d97e28e427d99cfa1ccb8ccdfdeffcc2fcdf383
Branches:  PHP-5.3 PHP-5.4

Link:       
http://git.php.net/?p=php-src.git;a=commitdiff;h=469cd3abf131853b5c727c7ebffff84754d8383c

Log:
Fix bug #61517 random test failure - 
ext/standard/tests/misc/time_sleep_until_basic.phpt

Bugs:
https://bugs.php.net/61517

Changed paths:
  M  ext/standard/tests/misc/time_sleep_until_basic.phpt


Diff:
diff --git a/ext/standard/tests/misc/time_sleep_until_basic.phpt 
b/ext/standard/tests/misc/time_sleep_until_basic.phpt
index 9ae9128..05cc0e6 100644
--- a/ext/standard/tests/misc/time_sleep_until_basic.phpt
+++ b/ext/standard/tests/misc/time_sleep_until_basic.phpt
@@ -13,7 +13,19 @@ Michele Orselli m...@ideato.it
 <?php
   $time = microtime(true) + 2;
   var_dump(time_sleep_until( (int)$time ));
-  var_dump(microtime(true) >= (int)$time);
+  $now = microtime(true);
+  if(substr(PHP_OS, 0, 3) == 'WIN' ) {
+    // on windows, time_sleep_until has millisecond accuracy while microtime() 
is accurate
+    // to 10th of a second. this means there can be up to a .9 millisecond 
difference
+    // which will fail this test. this test randomly fails on Windows and this 
is the cause.
+    //
+    // fix: round to nearest millisecond 
+    // passes for up to .5 milliseconds less, fails for more than .5 
milliseconds
+    // should be fine since time_sleep_until() on Windows is accurate to the
+    // millisecond(.5 rounded up is 1 millisecond)
+    $now = round($now, 3);
+  }
+  var_dump($now >= (int)$time);
 ?>
 --EXPECT--
 bool(true)


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to