diff --git a/ext/standard/tests/misc/time_sleep_until_basic.phpt b/ext/standard/tests/misc/time_sleep_until_basic.phpt index f26c6a5ceead5..b02a96f7d1a31 100644 --- a/ext/standard/tests/misc/time_sleep_until_basic.phpt +++ b/ext/standard/tests/misc/time_sleep_until_basic.phpt @@ -11,11 +11,29 @@ Michele Orselli mo@ideato.it #PHPTestFest Cesena Italia on 2009-06-20 --FILE-- = (int)$time ? $tmp : $tmp + .05; + $tolerance = 0.05; +} elseif (stripos(PHP_OS, 'DARWIN') === 0) { + // macOS: time_sleep_until() may wake up slightly early for unknown reasons. + // MacOS Github CI late by 106ms has been observed. + $tolerance = 0.2; +} elseif(PHP_OS === "FreeBSD"){ + // FreeBSD Github CI late by 74ms has been observed... + $tolerance = 0.2; +}else { + // Default tolerance + $tolerance = 0.01; } -// Add some tolerance for early wake on macos. Reason unknown. -if ($now + 0.002 >= $sleepUntil) { - echo "Success\n"; +if (1 && isWithinTolerance($timeAfterSleep, $targetTime, $tolerance)) { + echo "Success" . PHP_EOL; } else { - echo "Sleep until (before truncation): ", $time, "\n"; - echo "Sleep until: ", $sleepUntil, "\n"; - echo "Now: ", $now, "\n"; + echo "Failure" . PHP_EOL; + var_dump([ + "startTime" => $startTime, + "targetTime" => $targetTime, + "timeAfterSleep" => $timeAfterSleep, + "diff" => $timeAfterSleep - $targetTime, + "tolerance" => $tolerance, + "distanceFromTarget" => abs($timeAfterSleep - $targetTime), + ]); } - ?> --EXPECT-- bool(true)